├── .gitignore ├── Distribution ├── iFactr.UI.XML ├── iFactr.UI.dll └── iFactr.UI.pdb ├── LICENSE ├── MonoCross ├── .gitignore ├── Android │ ├── ANNOUNCEMENTS.markdown │ ├── MXActivityView.cs │ ├── MXDroidContainer.cs │ ├── MXDroidObservingView.cs │ ├── MXFragmentView.cs │ ├── MXListActivityView.cs │ ├── MXListFragmentView.cs │ ├── MXObservingListActivityView.cs │ ├── MXTabActivityView.cs │ ├── MonoCross.Droid.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── BestSellers Sample │ ├── BestSellers.Console │ │ ├── BestSellers.Console.csproj │ │ ├── BestSellers.Console.sln │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Views │ │ │ ├── BookListView.cs │ │ │ ├── BookView.cs │ │ │ └── CategoryListView.cs │ ├── BestSellers.Droid │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── BestSellers.Droid.csproj │ │ ├── BestSellers.Droid.sln │ │ ├── DroidApplication.cs │ │ ├── DroidView.cs │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Drawable │ │ │ │ ├── icon.png │ │ │ │ └── splash.png │ │ │ ├── Layout │ │ │ │ ├── Description.xml │ │ │ │ └── ListItem.axml │ │ │ ├── Resource.Designer.cs │ │ │ └── Values │ │ │ │ └── Strings.xml │ │ └── Views │ │ │ ├── BookListView.cs │ │ │ ├── BookView.cs │ │ │ └── CategoryListView.cs │ ├── BestSellers.Touch │ │ ├── BestSellers.Touch.csproj │ │ ├── BestSellers.Touch.sln │ │ ├── Entitlements.plist │ │ ├── Info.plist │ │ ├── Main.cs │ │ ├── Views │ │ │ ├── BookListView.cs │ │ │ ├── BookView.cs │ │ │ └── CategoryListView.cs │ │ └── icon.png │ ├── BestSellers.Webkit │ │ ├── Ajax.xml │ │ ├── BestSellers.Webkit.csproj │ │ ├── BestSellers.Webkit.sln │ │ ├── Controllers │ │ │ └── AppController.cs │ │ ├── Global.asax │ │ ├── Global.asax.cs │ │ ├── NytIcon.png │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Root.html │ │ ├── Views │ │ │ ├── BookListView.cs │ │ │ ├── BookView.cs │ │ │ ├── CategoryListView.cs │ │ │ ├── Shared │ │ │ │ └── Render.aspx │ │ │ └── Web.config │ │ ├── Web.config │ │ └── WebApp │ │ │ ├── Action │ │ │ ├── AndroidLogic.js │ │ │ ├── DebugLogic.js │ │ │ ├── FixedHeader.js │ │ │ ├── Logic.js │ │ │ └── iscroll.js │ │ │ ├── Design │ │ │ ├── AndroidRender.css │ │ │ ├── BlackBerryRender.css │ │ │ ├── BlackberryThemeBlack.css │ │ │ ├── Firefox.css │ │ │ ├── FixedHeader.css │ │ │ ├── Img │ │ │ │ ├── bg-head.png │ │ │ │ ├── bg-shop.png │ │ │ │ ├── bg-switch-thumb.png │ │ │ │ ├── bg-switch.png │ │ │ │ ├── bg-tab-sel.png │ │ │ │ ├── bg-tab-touch.png │ │ │ │ ├── bg-tab.png │ │ │ │ ├── bg-title.png │ │ │ │ ├── bg.png │ │ │ │ ├── big-button-grey.png │ │ │ │ ├── big-button-red.png │ │ │ │ ├── big-button-select.png │ │ │ │ ├── big-button-white.png │ │ │ │ ├── bullet-media.png │ │ │ │ ├── button-back-touch.png │ │ │ │ ├── button-back.png │ │ │ │ ├── button-bg.png │ │ │ │ ├── button-blue.png │ │ │ │ ├── button-light.png │ │ │ │ ├── button-red.png │ │ │ │ ├── button-simple-touch.png │ │ │ │ ├── button-simple.png │ │ │ │ ├── check-dis.png │ │ │ │ ├── check-sel.png │ │ │ │ ├── check.png │ │ │ │ ├── chevron-select.png │ │ │ │ ├── chevron.png │ │ │ │ ├── form-check-text.png │ │ │ │ ├── form-check-texton.png │ │ │ │ ├── loader-gray-100x12x1.png │ │ │ │ ├── loader-gray-100x12x10.png │ │ │ │ ├── loader-gray-100x12x11.png │ │ │ │ ├── loader-gray-100x12x12.png │ │ │ │ ├── loader-gray-100x12x2.png │ │ │ │ ├── loader-gray-100x12x3.png │ │ │ │ ├── loader-gray-100x12x4.png │ │ │ │ ├── loader-gray-100x12x5.png │ │ │ │ ├── loader-gray-100x12x6.png │ │ │ │ ├── loader-gray-100x12x7.png │ │ │ │ ├── loader-gray-100x12x8.png │ │ │ │ ├── loader-gray-100x12x9.png │ │ │ │ ├── loader-white-100x12x1.png │ │ │ │ ├── loader-white-100x12x10.png │ │ │ │ ├── loader-white-100x12x11.png │ │ │ │ ├── loader-white-100x12x12.png │ │ │ │ ├── loader-white-100x12x2.png │ │ │ │ ├── loader-white-100x12x3.png │ │ │ │ ├── loader-white-100x12x4.png │ │ │ │ ├── loader-white-100x12x5.png │ │ │ │ ├── loader-white-100x12x6.png │ │ │ │ ├── loader-white-100x12x7.png │ │ │ │ ├── loader-white-100x12x8.png │ │ │ │ ├── loader-white-100x12x9.png │ │ │ │ ├── next.png │ │ │ │ ├── rtl-bullet-media.png │ │ │ │ ├── rtl-button-back-touch.png │ │ │ │ ├── rtl-button-back.png │ │ │ │ ├── rtl-chevron-select.png │ │ │ │ ├── rtl-chevron.png │ │ │ │ ├── select.png │ │ │ │ └── tab-bg-select.png │ │ │ ├── Render.css │ │ │ ├── RenderRTL.css │ │ │ ├── ThemeBlack.css │ │ │ └── ThemeGrey.css │ │ │ └── Img │ │ │ ├── down.png │ │ │ ├── less.png │ │ │ ├── mas.png │ │ │ ├── menos.png │ │ │ ├── more.png │ │ │ ├── next.png │ │ │ └── up.png │ ├── BestSellers.WindowsPhone │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── ApplicationIcon.png │ │ ├── Assets │ │ │ ├── BadgeLogo.png │ │ │ ├── Logo.png │ │ │ ├── SplashScreen.png │ │ │ ├── SquareTile150x150.png │ │ │ ├── SquareTile71x71.png │ │ │ ├── StoreLogo.png │ │ │ └── WideLogo.png │ │ ├── Background.png │ │ ├── BestSellers.WindowsPhone.csproj │ │ ├── BestSellers.WindowsPhone.sln │ │ ├── Package.appxmanifest │ │ ├── Properties │ │ │ ├── AppManifest.xml │ │ │ ├── AssemblyInfo.cs │ │ │ └── WMAppManifest.xml │ │ ├── SplashScreenImage.jpg │ │ ├── StartupImage.jpg │ │ ├── StartupPage.xaml │ │ ├── StartupPage.xaml.cs │ │ └── Views │ │ │ ├── BookListPage.xaml │ │ │ ├── BookListPage.xaml.cs │ │ │ ├── BookPage.xaml │ │ │ ├── BookPage.xaml.cs │ │ │ ├── CategoryListPage.xaml │ │ │ └── CategoryListPage.xaml.cs │ ├── BestSellers.sln │ └── BestSellers │ │ ├── App.cs │ │ ├── BestSellers.WP.csproj │ │ ├── BestSellers.csproj │ │ ├── Controllers │ │ ├── BookController.cs │ │ ├── BookListController.cs │ │ └── CategoryListController.cs │ │ ├── HttpExtensions.cs │ │ ├── Model │ │ ├── Book.cs │ │ ├── BookList.cs │ │ └── CategoryList.cs │ │ └── Properties │ │ └── AssemblyInfo.cs ├── Console │ ├── MXConsoleContainer.cs │ ├── MXConsoleView.cs │ ├── MonoCross.Console.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── Distribution │ ├── MonoCross.Utilities.Android.dll │ ├── MonoCross.Utilities.Android.pdb │ ├── MonoCross.Utilities.NET.dll │ ├── MonoCross.Utilities.NET.pdb │ ├── MonoCross.Utilities.iOS.dll │ ├── MonoCross.Utilities.iOS.pdb │ ├── MonoCross.dll │ ├── MonoCross.pdb │ ├── MonoCross.xml │ ├── Newtonsoft.Json.dll │ ├── Newtonsoft.Json.pdb │ └── Newtonsoft.Json.xml ├── LICENSE ├── MonoCross.csproj ├── MonoCross.nuspec ├── MonoCross.png ├── MonoCross.sln ├── Navigation │ ├── MXApplication.cs │ ├── MXContainer.cs │ ├── MXController.cs │ ├── MXNavigation.cs │ ├── MXView.cs │ ├── MXViewMap.cs │ ├── NamedTypeMap.cs │ ├── ReflectionExtensions.cs │ ├── SerializableDictionary.cs │ ├── Session.cs │ ├── TypeLoader.cs │ └── ViewPerspective.cs ├── Properties │ └── AssemblyInfo.cs ├── README.markdown ├── Touch │ ├── LoadingView.cs │ ├── MXTouchContainer.cs │ ├── MXTouchDialogView.cs │ ├── MXTouchNavigation.cs │ ├── MXTouchView.cs │ ├── MXTouchViewAttributes.cs │ ├── MXTouchViewController.cs │ ├── MXTouchViewGroup.cs │ ├── MonoCross.Touch.csproj │ ├── SplashViewController.cs │ ├── SplitViewController │ │ ├── MGCornersView.cs │ │ ├── MGDetailViewController.cs │ │ ├── MGDividerView.cs │ │ ├── MGRootViewController.cs │ │ └── MGSplitViewController.cs │ ├── SplitViewControllerDelegate.cs │ └── TouchNavigationHelper.cs ├── Utilities │ ├── AndroidDevice.cs │ ├── CompactDevice.cs │ ├── ConsoleDevice.cs │ ├── Device.cs │ ├── Encryption │ │ ├── AesEncryption.cs │ │ ├── BaseEncryption.cs │ │ ├── EncryptionMode.cs │ │ ├── EncryptorMap.cs │ │ ├── IEncryption.cs │ │ └── MockEncryption.cs │ ├── EncryptionMode.cs │ ├── Events.cs │ ├── Extensions │ │ ├── DictionaryExtensions.cs │ │ ├── EnumExtensions.cs │ │ ├── IEnumerableExtensions.cs │ │ ├── StringExtensions.cs │ │ └── WaitHandleExtensions.cs │ ├── HttpUtility.cs │ ├── ImageComposition │ │ ├── AndroidCompositor.cs │ │ ├── GdiPlusCompositor.cs │ │ ├── ICompositor.cs │ │ ├── ImageUtility.cs │ │ ├── NullCompositor.cs │ │ └── TouchCompositor.cs │ ├── Imaging │ │ ├── ImageCache.cs │ │ └── Interfaces │ │ │ ├── IExifData.cs │ │ │ ├── IImageCache.cs │ │ │ └── IImageData.cs │ ├── Logging │ │ ├── AndroidLogger.cs │ │ ├── BaseLogger.cs │ │ ├── BasicLogger.cs │ │ ├── DiagnosticDebugLogger.cs │ │ ├── ILog.cs │ │ ├── LogEvent.cs │ │ ├── LogEventArgs.cs │ │ ├── LogHelper.cs │ │ ├── LogMessageType.cs │ │ ├── LoggerFactory.cs │ │ ├── LoggingLevel.cs │ │ ├── NetworkStatus.cs │ │ ├── QuietLogger.cs │ │ ├── Reachability.cs │ │ └── RestfulQueue.cs │ ├── MobilePlatform.cs │ ├── MonoCross.Utilities.Android.Debug.csproj │ ├── MonoCross.Utilities.Android.csproj │ ├── MonoCross.Utilities.Android.nuspec │ ├── MonoCross.Utilities.NET.Debug.csproj │ ├── MonoCross.Utilities.NET.csproj │ ├── MonoCross.Utilities.NET.nuspec │ ├── MonoCross.Utilities.iOS.Debug.csproj │ ├── MonoCross.Utilities.iOS.csproj │ ├── MonoCross.Utilities.iOS.nuspec │ ├── Network │ │ ├── AndroidFetcher.cs │ │ ├── AndroidNetwork.cs │ │ ├── Fetch │ │ │ ├── FetcherAsynch.cs │ │ │ ├── FetcherSynch.cs │ │ │ └── IFetcher.cs │ │ ├── INetwork.cs │ │ ├── NetworkAsynch.cs │ │ ├── NetworkFactory.cs │ │ ├── NetworkGetMethod.cs │ │ ├── NetworkPostMethod.cs │ │ ├── NetworkResponse.cs │ │ ├── NetworkSynch.cs │ │ ├── NetworkUtils.cs │ │ └── Post │ │ │ ├── IPoster.cs │ │ │ ├── PosterAsynch.cs │ │ │ └── PosterSynch.cs │ ├── Notification │ │ ├── Notify.MD.cs │ │ ├── Notify.MT.cs │ │ └── Notify.WP.cs │ ├── PlatformUtils.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Reflection │ │ ├── BasicReflector.cs │ │ ├── IReflector.cs │ │ └── NullReflector.cs │ ├── Resources │ │ ├── AndroidResources.cs │ │ ├── BasicResources.cs │ │ ├── IResources.cs │ │ ├── NullResources.cs │ │ └── WindowsResources.cs │ ├── Scanning │ │ ├── BarcodeScanner.cs │ │ ├── BarcodeScannerFactory.cs │ │ ├── IBarcodeScanner.cs │ │ ├── IScanner.cs │ │ ├── LineaPro.cs │ │ ├── MockScanner.cs │ │ ├── RedLaser.MD.cs │ │ ├── RedLaser.MT.cs │ │ ├── RedLaser.cs │ │ ├── Scanner.cs │ │ └── Symbology.cs │ ├── Serialization │ │ ├── BaseSerializer.cs │ │ ├── ISerializer.cs │ │ ├── SerializationFormat.cs │ │ ├── SerializerFactory.cs │ │ ├── SerializerJson.cs │ │ ├── SerializerOdata.cs │ │ └── SerializerXml.cs │ ├── Storage │ │ ├── AndroidFile.cs │ │ ├── BasicFile.cs │ │ ├── IFile.cs │ │ └── NullFile.cs │ ├── SyncQueue.cs │ ├── Threading │ │ ├── AndroidThread.cs │ │ ├── BasicThread.cs │ │ ├── CompactFrameworkThread.cs │ │ ├── DispatcherThread.cs │ │ ├── IThread.cs │ │ ├── IdleThreadQueue.cs │ │ ├── MockThread.cs │ │ ├── NullThread.cs │ │ ├── TaskThread.cs │ │ ├── ThreadFactory.cs │ │ └── TouchThread.cs │ ├── TouchDevice.cs │ ├── TypeSwitch.cs │ ├── WeakKeyDictionary.cs │ ├── WebDevice.cs │ ├── WebSessionDictionary.cs │ ├── WpfDevice.cs │ └── Xml.cs ├── WPF │ ├── MXPageView.cs │ ├── MXWindowsContainer.cs │ ├── MonoCross.WPF.csproj │ └── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings ├── Webkit │ ├── MXWebkitContainer.cs │ ├── MXWebkitDialogView.cs │ ├── MXWebkitView.cs │ ├── MonoCross.Webkit.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── build.cmd └── build.xml ├── README.md ├── build.cmd ├── build.xml ├── iFactr.UI.sln ├── iFactr.UI ├── Controls │ ├── ActionType.cs │ ├── Break.cs │ ├── Button.cs │ ├── CancelButton.cs │ ├── HeaderLabel.cs │ ├── IBlockPanelItem.cs │ ├── Icon.cs │ ├── Label.cs │ ├── Link.cs │ ├── PanelItem.cs │ └── SubmitButton.cs ├── FormFactor.cs ├── Integrations │ ├── Accelerometer.cs │ ├── Compass.cs │ ├── GeoLocation.cs │ ├── Interfaces │ │ ├── IAccelerometer.cs │ │ ├── ICompass.cs │ │ └── IGeoLocation.cs │ └── MailTo.cs ├── ItemsCollection.cs ├── Link.cs ├── MobileTarget.cs ├── MonoView │ ├── Alerts │ │ ├── Alert.cs │ │ └── Interfaces │ │ │ └── IAlert.cs │ ├── Attributes │ │ ├── EventDelegateAttribute.cs │ │ ├── NativeOnlyAttribute.cs │ │ ├── PreferredPaneAttribute.cs │ │ └── StackBehaviorAttribute.cs │ ├── Binding.cs │ ├── Cells and Tiles │ │ ├── Cell.cs │ │ ├── Column.cs │ │ ├── ContentCell.cs │ │ ├── CustomItemContainer.cs │ │ ├── GridCell.cs │ │ ├── HeaderedControlCell.cs │ │ ├── Interfaces │ │ │ ├── ICell.cs │ │ │ ├── IGrid.cs │ │ │ ├── IGridCell.cs │ │ │ ├── IGridTile.cs │ │ │ ├── IRichContentCell.cs │ │ │ ├── ISectionFooter.cs │ │ │ ├── ISectionHeader.cs │ │ │ └── ITile.cs │ │ ├── RichContentCell.cs │ │ ├── Row.cs │ │ ├── Section.cs │ │ ├── SectionFooter.cs │ │ ├── SectionHeader.cs │ │ └── TableCell.cs │ ├── Color.cs │ ├── Converter.cs │ ├── Elements │ │ ├── Controls │ │ │ ├── Button.cs │ │ │ ├── Control.cs │ │ │ ├── DatePicker.cs │ │ │ ├── Image.cs │ │ │ ├── Interfaces │ │ │ │ ├── IButton.cs │ │ │ │ ├── IControl.cs │ │ │ │ ├── IDatePicker.cs │ │ │ │ ├── IImage.cs │ │ │ │ ├── ILabel.cs │ │ │ │ ├── IPasswordBox.cs │ │ │ │ ├── ISelectList.cs │ │ │ │ ├── ISlider.cs │ │ │ │ ├── ISwitch.cs │ │ │ │ ├── ITextArea.cs │ │ │ │ ├── ITextBox.cs │ │ │ │ └── ITimePicker.cs │ │ │ ├── Label.cs │ │ │ ├── PasswordBox.cs │ │ │ ├── SelectList.cs │ │ │ ├── Slider.cs │ │ │ ├── Switch.cs │ │ │ ├── TextArea.cs │ │ │ ├── TextBox.cs │ │ │ └── TimePicker.cs │ │ ├── Element.cs │ │ ├── Grid.cs │ │ └── Interfaces │ │ │ ├── IElement.cs │ │ │ ├── IElementHost.cs │ │ │ ├── IGrid.cs │ │ │ └── IGridBase.cs │ ├── Enums │ │ ├── AlertButtons.cs │ │ ├── AlertResult.cs │ │ ├── BindingMode.cs │ │ ├── ColumnMode.cs │ │ ├── ContentStretch.cs │ │ ├── HorizontalAlignment.cs │ │ ├── ImageCreationOptions.cs │ │ ├── KeyboardReturnType.cs │ │ ├── KeyboardType.cs │ │ ├── LayoutUnitType.cs │ │ ├── ListViewStyle.cs │ │ ├── PopoverPresentationStyle.cs │ │ ├── PreferredOrientation.cs │ │ ├── SearchFilterResult.cs │ │ ├── SelectionStyle.cs │ │ ├── TextAlignment.cs │ │ ├── TextCompletion.cs │ │ ├── VerticalAlignment.cs │ │ └── Visibility.cs │ ├── Events │ │ ├── AlertEvents.cs │ │ ├── HandledEvents.cs │ │ ├── LoadEvents.cs │ │ ├── OutputEvents.cs │ │ ├── SaveEvents.cs │ │ ├── SearchEvents.cs │ │ ├── SubmissionEvents.cs │ │ ├── ValidationEvents.cs │ │ └── ValueChangedEvents.cs │ ├── Extensions │ │ ├── BindingExtensions.cs │ │ ├── ControlExtensions.cs │ │ ├── ElementHostExtensions.cs │ │ ├── EventHandlerExtensions.cs │ │ ├── GridExtensions.cs │ │ ├── ItemExtensions.cs │ │ ├── PairableExtensions.cs │ │ └── iLayerExtensions.cs │ ├── Font.cs │ ├── IPairable.cs │ ├── IPlatformDefaults.cs │ ├── ITimer.cs │ ├── IValueConverter.cs │ ├── Instructions │ │ ├── ILayoutInstruction.cs │ │ ├── Instructor.cs │ │ └── UniveralInstructor.cs │ ├── Menus and Toolbars │ │ ├── Interfaces │ │ │ ├── IMenu.cs │ │ │ ├── IMenuButton.cs │ │ │ ├── IToolbar.cs │ │ │ ├── IToolbarButton.cs │ │ │ ├── IToolbarItem.cs │ │ │ └── IToolbarSeparator.cs │ │ ├── Menu.cs │ │ ├── MenuButton.cs │ │ ├── Toolbar.cs │ │ ├── ToolbarButton.cs │ │ └── ToolbarSeparator.cs │ ├── MetadataCollection.cs │ ├── Parameter.cs │ ├── Point.cs │ ├── Reflection │ │ ├── ControlAttribute.cs │ │ ├── GroupAttribute.cs │ │ ├── ImageAttribute.cs │ │ ├── LabelAttribute.cs │ │ ├── MemberParticipationAttribute.cs │ │ ├── OptInAttribute.cs │ │ ├── OrderAttribute.cs │ │ ├── ReflectiveUIBuilder.cs │ │ ├── SectionAttribute.cs │ │ ├── SelectableAttribute.cs │ │ ├── SkipAttribute.cs │ │ └── ViewAttribute.cs │ ├── Search │ │ ├── Interfaces │ │ │ └── ISearchBox.cs │ │ ├── SearchBox.cs │ │ └── SearchFilterResult.cs │ ├── Size.cs │ ├── Tabs │ │ ├── Interfaces │ │ │ └── ITabItem.cs │ │ └── TabItem.cs │ ├── Thickness.cs │ ├── ValidationErrorCollection.cs │ └── Views │ │ ├── BrowserView.cs │ │ ├── CanvasView.cs │ │ ├── GridView.cs │ │ ├── Interfaces │ │ ├── IBrowserView.cs │ │ ├── ICanvasView.cs │ │ ├── IGridView.cs │ │ ├── IHistoryEntry.cs │ │ ├── IListView.cs │ │ ├── ITabView.cs │ │ └── IView.cs │ │ ├── ListView.cs │ │ ├── TabView.cs │ │ └── View.cs ├── NavigationMap.cs ├── Pane.cs ├── Properties │ └── AssemblyInfo.cs ├── Resources │ └── Strings.resx ├── Stack │ ├── IHistoryStack.cs │ ├── IMXViewExtensions.cs │ ├── PaneManager.cs │ └── StackExtensions.cs ├── Styles │ ├── DynamicImage.cs │ ├── LabelStyle.cs │ └── Style.cs ├── Targets │ ├── Config │ │ ├── ConfigDictionary.cs │ │ └── IConfig.cs │ ├── ITargetFactory.cs │ ├── NativeFactory.cs │ ├── Settings │ │ ├── BasicSettingsDictionary.cs │ │ ├── ISettings.cs │ │ └── SettingsDictionary.cs │ └── TargetFactory.cs ├── Views │ ├── Enums │ │ ├── CompositeLayout.cs │ │ └── LayerLayout.cs │ ├── Fields │ │ ├── AggregateFieldset.cs │ │ ├── BoolField.cs │ │ ├── ButtonField.cs │ │ ├── DateField.cs │ │ ├── DrawingField.cs │ │ ├── EmailField.cs │ │ ├── Field.cs │ │ ├── Fieldset.cs │ │ ├── ImagePickerField.cs │ │ ├── KeyboardType.cs │ │ ├── LabelField.cs │ │ ├── MultiLineTextField.cs │ │ ├── NavigationField.cs │ │ ├── NumericField.cs │ │ ├── SelectListField.cs │ │ ├── SelectListFieldItem.cs │ │ ├── SliderField.cs │ │ └── TextField.cs │ ├── Items │ │ ├── CollectionItems │ │ │ ├── ContentItem.cs │ │ │ ├── ICustomItem.cs │ │ │ ├── MessageItem.cs │ │ │ ├── MultiLineSubtextItem.cs │ │ │ ├── PhotoItem.cs │ │ │ ├── RightSubtextItem.cs │ │ │ ├── ShopItem.cs │ │ │ ├── SubtextBelowAndBesideItem.cs │ │ │ ├── SubtextItem.cs │ │ │ ├── VariableContentItem.cs │ │ │ └── iItem.cs │ │ ├── IHtmlText.cs │ │ ├── Map.cs │ │ ├── SearchList.cs │ │ ├── iBlock.cs │ │ ├── iCollection.cs │ │ ├── iLayerItem.cs │ │ ├── iList.cs │ │ ├── iMenu.cs │ │ ├── iPagedList.cs │ │ └── iPanel.cs │ ├── Keys │ │ ├── Gesture.cs │ │ ├── Keystroke.cs │ │ └── Shortcuts.cs │ ├── Layers │ │ ├── Browser.cs │ │ ├── ContentLayer.cs │ │ ├── IDetailLayer.cs │ │ ├── IMasterLayer.cs │ │ ├── IPopoverLayer.cs │ │ ├── Layer.cs │ │ ├── LoginLayer.cs │ │ ├── NavigationTabs.cs │ │ ├── ScanLayer.cs │ │ ├── ValidationInfo.cs │ │ ├── iFormLayer.cs │ │ └── iLayer.cs │ ├── NavigationType.cs │ ├── Notification.cs │ └── Tab.cs ├── iApp.cs ├── iFactr.UI.Debug.csproj ├── iFactr.UI.csproj └── iFactr.UI.nuspec └── iFactr.png /Distribution/iFactr.UI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/Distribution/iFactr.UI.dll -------------------------------------------------------------------------------- /Distribution/iFactr.UI.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/Distribution/iFactr.UI.pdb -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zebra Technologies 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MonoCross/Android/ANNOUNCEMENTS.markdown: -------------------------------------------------------------------------------- 1 | Android.Dialog has been removed as a dependency for MonoCross.Droid. 2 | 3 | For a MonoTouch.Dialog-like experience with MonoCross.Droid, the MonoCross developers recommend Android.Dialog, a library with compatibility for MonoCross.Droid through the included gist: 4 | https://github.com/sam-lippert/Android.Dialog 5 | https://gist.github.com/MonoCross/7157586 -------------------------------------------------------------------------------- /MonoCross/Android/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Android/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Console/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Text.RegularExpressions; 6 | 7 | using MonoCross.Navigation; 8 | using MonoCross.Console; 9 | 10 | using BestSellers; 11 | 12 | namespace BestSellers.Console 13 | { 14 | class Program 15 | { 16 | static void Main(string[] args) 17 | { 18 | // initialize container 19 | MXConsoleContainer.Initialize(new BestSellers.App()); 20 | 21 | // initialize views 22 | MXConsoleContainer.AddView(new Views.CategoryListView(), ViewPerspective.Read); 23 | MXConsoleContainer.AddView(new Views.BookListView(), ViewPerspective.Read); 24 | MXConsoleContainer.AddView(new Views.BookView(), ViewPerspective.Read); 25 | 26 | // navigate to first view 27 | MXConsoleContainer.Navigate(MXContainer.Instance.App.NavigateOnLoad); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Console/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Console.Container")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("Console.Container")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d11848f7-7b41-4cac-9e00-8d1923c564b5")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Console/Views/BookListView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using MonoCross.Navigation; 7 | using MonoCross.Console; 8 | 9 | using BestSellers; 10 | 11 | namespace BestSellers.Console.Views 12 | { 13 | class BookListView : MXConsoleView 14 | { 15 | public override void Render() 16 | { 17 | System.Console.WriteLine(); 18 | System.Console.WriteLine(Model.CategoryDisplayName); 19 | System.Console.WriteLine(); 20 | 21 | Dictionary inputValues = new Dictionary(); 22 | foreach (Book book in Model) 23 | { 24 | string inputValue = (inputValues.Count + 1).ToString(); 25 | System.Console.WriteLine(inputValue + ". " + book.Title); 26 | inputValues.Add(inputValue, string.Format("{0}/{1}", book.CategoryEncoded, book.ISBN10)); 27 | } 28 | 29 | System.Console.WriteLine(); 30 | System.Console.WriteLine("Enter Index Value or Blank to go Back"); 31 | 32 | DefaultInputAndNavigate(inputValues); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Console/Views/BookView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using MonoCross.Navigation; 7 | using MonoCross.Console; 8 | 9 | using BestSellers; 10 | 11 | namespace BestSellers.Console.Views 12 | { 13 | class BookView : MXConsoleView 14 | { 15 | public override void Render() 16 | { 17 | System.Console.WriteLine(); 18 | System.Console.WriteLine("Book Details"); 19 | System.Console.WriteLine(); 20 | 21 | System.Console.WriteLine(Model.Title); 22 | System.Console.WriteLine(Model.Contributor); 23 | System.Console.WriteLine(string.Format("${0}", Model.Price)); 24 | System.Console.WriteLine(); 25 | System.Console.WriteLine(Model.Description); 26 | System.Console.WriteLine(); 27 | System.Console.WriteLine("Enter to Continue"); 28 | 29 | DefaultInputAndNavigate(null); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Console/Views/CategoryListView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using MonoCross.Console; 7 | using MonoCross.Navigation; 8 | 9 | using BestSellers; 10 | 11 | namespace BestSellers.Console.Views 12 | { 13 | public class CategoryListView : MXConsoleView 14 | { 15 | public override void Render() 16 | { 17 | System.Console.WriteLine("Categories"); 18 | System.Console.WriteLine(); 19 | 20 | Dictionary inputValues = new Dictionary(); 21 | foreach (Category category in Model) 22 | { 23 | string inputValue = (inputValues.Count + 1).ToString(); 24 | System.Console.WriteLine(inputValue + ". " + category.DisplayName); 25 | inputValues.Add(inputValue, category.ListNameEncoded); 26 | } 27 | 28 | System.Console.WriteLine(); 29 | System.Console.WriteLine("Enter Category Index Value or Blank to go Back"); 30 | 31 | DefaultInputAndNavigate(inputValues); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/DroidApplication.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using Android.App; 7 | using Android.Content; 8 | using Android.OS; 9 | using Android.Runtime; 10 | using Android.Views; 11 | using Android.Widget; 12 | 13 | using MonoCross.Navigation; 14 | 15 | namespace Droid.Container 16 | { 17 | class DroidApplication : MXApplication 18 | { 19 | //public Dictionary Activities { get; private set; } 20 | //public static void Initialize(MXApplication theApp) 21 | //{ 22 | // MXApplication.Initialize(theApp); 23 | // Activities = new Dictionary(); 24 | //} 25 | } 26 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/DroidView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | using Android.App; 7 | using Android.Content; 8 | using Android.OS; 9 | using Android.Runtime; 10 | using Android.Views; 11 | using Android.Widget; 12 | 13 | using MonoCross.Navigation; 14 | 15 | namespace Droid.Container 16 | { 17 | public interface IDroidView 18 | { 19 | Type ActivityType { get; set; } 20 | } 21 | public class DroidView : MXView, IDroidView 22 | { 23 | public Type ActivityType { get; protected set; } 24 | public DroidView(Type activityType) 25 | { 26 | this.ActivityType = activityType; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Droid.Container")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Microsoft")] 11 | [assembly: AssemblyProduct("Droid.Container")] 12 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("a557ce8c-9dbe-4b93-8fc4-95ffc126cf14")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Drawable/icon.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Drawable/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Drawable/splash.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Layout/Description.xml: -------------------------------------------------------------------------------- 1 |  2 | 10 | 20 | 28 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Layout/ListItem.axml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Droid/Resources/Values/Strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Best Sellers 4 | 5 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Touch/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | get-task-allow 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Touch/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDisplayName 6 | Best Sellers 7 | CFBundleIconFiles 8 | 9 | icon.png 10 | 11 | CFBundleIdentifier 12 | com.itrgroup.bestsellers 13 | MinimumOSVersion 14 | 9.0 15 | UIDeviceFamily 16 | 17 | 1 18 | 19 | UISupportedInterfaceOrientations 20 | 21 | UIInterfaceOrientationPortrait 22 | UIInterfaceOrientationPortraitUpsideDown 23 | 24 | CFBundleVersion 25 | 1.9 26 | NSMainNibFile 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Touch/Views/BookListView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using UIKit; 6 | using MonoTouch.Dialog; 7 | 8 | using MonoCross.Navigation; 9 | using MonoCross.Touch; 10 | 11 | using Touch.TestContainer; 12 | using BestSellers; 13 | 14 | namespace Touch.TestContainer.Views 15 | { 16 | [MXTouchViewAttributes(ViewNavigationContext.Master)] 17 | public class BookListView : MXTouchDialogView 18 | { 19 | public BookListView(): base(UITableViewStyle.Plain, null, true) 20 | { 21 | } 22 | 23 | public override void Render () 24 | { 25 | RootElement root = new RootElement(Model.CategoryDisplayName ?? Model.Category); 26 | Section section = new Section(); 27 | 28 | foreach (var book in Model) 29 | { 30 | string isbn = string.IsNullOrEmpty(book.ISBN10) ? book.ISBN13 : book.ISBN10; 31 | string uri = String.Format("{0}/{1}", book.CategoryEncoded, isbn); 32 | StringElement se = new StringElement(book.Title, () => { this.Navigate(uri); }); 33 | section.Add(se); 34 | } 35 | 36 | root.Add(section); 37 | Root = root; 38 | } 39 | } 40 | } 41 | 42 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Touch/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Touch/icon.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/Ajax.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/Ajax.xml -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/Controllers/AppController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | 7 | using MonoCross.Navigation; 8 | using MonoCross.Webkit; 9 | 10 | using BestSellers; 11 | 12 | namespace BestSellers.Webkit.Controllers 13 | { 14 | [HandleError] 15 | public class AppController : Controller 16 | { 17 | public ActionResult Render(string mapUri) 18 | { 19 | String url = (mapUri == null) ? MXContainer.Instance.App.NavigateOnLoad : mapUri; 20 | MXWebkitContainer.Navigate(url, this.Request); 21 | return null; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="BestSellers.Webkit.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | using MonoCross.Navigation; 9 | using MonoCross.Webkit; 10 | 11 | using BestSellers; 12 | 13 | namespace BestSellers.Webkit 14 | { 15 | // Note: For instructions on enabling IIS6 or IIS7 classic mode, 16 | // visit http://go.microsoft.com/?LinkId=9394801 17 | 18 | public class MvcApplication : System.Web.HttpApplication 19 | { 20 | public static void RegisterRoutes(RouteCollection routes) 21 | { 22 | routes.RouteExistingFiles = false; 23 | routes.IgnoreRoute("WebApp/{*pathInfo}"); 24 | routes.Ignore("favicon.ico"); 25 | routes.MapRoute("", "{*mapUri}", new { controller = "App", action = "Render" }); 26 | } 27 | 28 | protected void Application_Start() 29 | { 30 | RegisterRoutes(RouteTable.Routes); 31 | } 32 | 33 | protected void Session_Start() 34 | { 35 | // initialize app 36 | MXWebkitContainer.Initialize(new BestSellers.App()); 37 | // add views to container 38 | MXWebkitContainer.AddView(new Views.CategoryListView(), ViewPerspective.Read); 39 | MXWebkitContainer.AddView(new Views.BookListView(), ViewPerspective.Read); 40 | MXWebkitContainer.AddView(new Views.BookView(), ViewPerspective.Read); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/NytIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/NytIcon.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Webkit.Container")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("Webkit.Container")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0ba4b6e4-91be-4d06-96e5-59fac2c3b7e8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Firefox.css: -------------------------------------------------------------------------------- 1 | #iHeader { 2 | border-style:solid; 3 | border-color:transparent; 4 | -moz-box-sizing:border-box; 5 | } 6 | 7 | #waHeadTitle { 8 | -moz-box-sizing:border-box; 9 | } 10 | 11 | .iLayer h2 { 12 | background-color:#b2bbc2; 13 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/FixedHeader.css: -------------------------------------------------------------------------------- 1 | #wrapper 2 | { 3 | position:relative; /* needed */ 4 | z-index:1; /* needed and important */ 5 | height:420px; /* needed */ 6 | overflow:hidden; /* suggested */ 7 | } 8 | 9 | #scroller 10 | { 11 | position:absolute; /* optional. Seems to work with absolute, relative and without it */ 12 | top:0; /* optional */ 13 | 14 | width:320px; 15 | padding:0px; 16 | /*background:#eee;*/ 17 | /*background:rgba(178,187,194,0.5) url(../WebApp/Design/Img/bg.png);*/ 18 | } 19 | 20 | /* 21 | .iLayer h2 { background-color:rgba(190,190,190,0.89) } 22 | .iLayer h2{margin:0;color:#fff;line-height:18px;font-size:18px;background:rgba(190,190,190,0.89) url(Img/bg-title.png) top repeat-x;padding:1px 12px;font-weight:bold;text-shadow:rgba(0,0,0,0.5) 0 1px 0;-webkit-box-sizing:border-box;height:22px;overflow:hidden;white-space:nowrap;width:100%;z-index:100} 23 | */ 24 | 25 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-head.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-shop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-shop.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-switch-thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-switch-thumb.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-switch.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab-sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab-sel.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab-touch.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-tab.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg-title.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bg.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-grey.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-red.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-select.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/big-button-white.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bullet-media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/bullet-media.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-back-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-back-touch.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-back.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-bg.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-blue.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-light.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-red.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-simple-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-simple-touch.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/button-simple.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check-dis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check-dis.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check-sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check-sel.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/check.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/chevron-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/chevron-select.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/chevron.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/form-check-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/form-check-text.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/form-check-texton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/form-check-texton.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x1.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x10.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x11.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x12.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x2.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x3.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x4.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x5.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x6.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x7.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x8.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-gray-100x12x9.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x1.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x10.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x11.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x12.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x2.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x3.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x4.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x5.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x6.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x7.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x8.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/loader-white-100x12x9.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/next.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-bullet-media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-bullet-media.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-button-back-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-button-back-touch.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-button-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-button-back.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-chevron-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-chevron-select.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/rtl-chevron.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/select.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/tab-bg-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/Img/tab-bg-select.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Design/ThemeGrey.css: -------------------------------------------------------------------------------- 1 | /* Header color */ 2 | #iHeader { background-color:#888 } 3 | 4 | /* Main background color */ 5 | #WebApp { background-color:#ccc } 6 | 7 | /* Selection color */ 8 | .iMore:not(.__lod):active, 9 | li.iRadio.__sel, 10 | .iMenu li.__sel, 11 | .iList li.__sel { background-color:#f80 } 12 | 13 | /* List header */ 14 | .iLayer h2 { background-color:rgba(190,190,190,0.89) } 15 | 16 | /* List right text */ 17 | 18 | .iMenu li:not(.iMore) span, 19 | .iPanel li span { 20 | color:#f80; 21 | } 22 | 23 | 24 | /* Common title */ 25 | .iMenu h3, 26 | .iBlock h1, 27 | .iPanel legend { 28 | color:#555; 29 | } 30 | 31 | /* Switch */ 32 | 33 | b.iToggle.__sel { 34 | border-color:#b05d00; 35 | background-color:#f80; 36 | } 37 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/down.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/less.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/less.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/mas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/mas.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/menos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/menos.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/more.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/next.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.Webkit/WebApp/Img/up.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/ApplicationIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/ApplicationIcon.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/BadgeLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/BadgeLogo.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/Logo.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SplashScreen.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SquareTile150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SquareTile150x150.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SquareTile71x71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/SquareTile71x71.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/StoreLogo.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/WideLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Assets/WideLogo.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Background.png -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Properties/AppManifest.xml: -------------------------------------------------------------------------------- 1 |  4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("WindowsPhone.Container")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Microsoft")] 11 | [assembly: AssemblyProduct("WindowsPhone.Container")] 12 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("813756ee-4806-4983-9bb6-4ee9f7d22be6")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Revision and Build Numbers 32 | // by using the '*' as shown below: 33 | [assembly: AssemblyVersion("1.0.0.0")] 34 | [assembly: AssemblyFileVersion("1.0.0.0")] 35 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/SplashScreenImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/SplashScreenImage.jpg -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/StartupImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/BestSellers Sample/BestSellers.WindowsPhone/StartupImage.jpg -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/StartupPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Phone.Controls; 2 | 3 | namespace WindowsPhone.Container 4 | { 5 | public partial class StartupPage : PhoneApplicationPage 6 | { 7 | public StartupPage() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Views/BookListPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | using MonoCross.WindowsPhone; 3 | using System.Windows.Controls; 4 | 5 | namespace BestSellers.WindowsPhone 6 | { 7 | 8 | public class BookListView : MXPhonePage { } 9 | 10 | [MXPhoneView("/Views/BookListPage.xaml")] 11 | public partial class BookListPage 12 | { 13 | public BookListPage() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public override void Render() 19 | { 20 | ApplicationTitle.Text = MXContainer.Instance.App.Title; 21 | PageTitle.Text = Model.CategoryDisplayName; 22 | 23 | //listBox.DataContext = Model; 24 | foreach (var book in Model) 25 | ListBox.Items.Add(book); 26 | 27 | ListBox.SelectionChanged += listBox_SelectionChanged; 28 | } 29 | 30 | void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 31 | { 32 | var b = e.AddedItems[0] as Book; 33 | if (b != null) 34 | MXContainer.Navigate(this, string.Format("{0}/{1}", b.CategoryEncoded, b.ISBN)); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Views/BookPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | using MonoCross.WindowsPhone; 3 | using System; 4 | using System.Windows.Media.Imaging; 5 | 6 | namespace BestSellers.WindowsPhone 7 | { 8 | public class BookView : MXPhonePage { } 9 | 10 | [MXPhoneView("/Views/BookPage.xaml")] 11 | public partial class BookPage : BookView 12 | { 13 | public BookPage() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public override void Render() 19 | { 20 | ApplicationTitle.Text = MXContainer.Instance.App.Title; 21 | PageTitle.Text = Model.Title; 22 | 23 | AmazonImage.Source = new BitmapImage(new Uri(Model.AmazonImageUrl, UriKind.Absolute)); 24 | Author.Text = Model.Contributor; 25 | Price.Text = string.Format("${0}", Model.Price); 26 | Description.Text = Model.Description; 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers.WindowsPhone/Views/CategoryListPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | using MonoCross.WindowsPhone; 3 | using System.Windows.Controls; 4 | 5 | namespace BestSellers.WindowsPhone 6 | { 7 | public class CategoryListView : MXPhonePage { } 8 | 9 | [MXPhoneView("/Views/CategoryListPage.xaml")] 10 | public partial class CategoryListPage : CategoryListView 11 | { 12 | // Constructor 13 | public CategoryListPage() 14 | { 15 | InitializeComponent(); 16 | 17 | ApplicationTitle.Text = MXContainer.Instance.App.Title; 18 | PageTitle.Text = "Categories"; 19 | 20 | ListBox.SelectionChanged += new SelectionChangedEventHandler(listBox_SelectionChanged); 21 | } 22 | 23 | public override void Render() 24 | { 25 | ListBox.Items.Clear(); 26 | 27 | foreach (var category in Model) 28 | ListBox.Items.Add(category); 29 | 30 | // remove the splash screen that was shown just before this 31 | NavigationService.RemoveBackEntry(); 32 | } 33 | 34 | void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 35 | { 36 | var c = e.AddedItems[0] as Category; 37 | 38 | MXContainer.Navigate(this, c.ListNameEncoded); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/App.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | using BestSellers.Controllers; 3 | 4 | namespace BestSellers 5 | { 6 | public class App : MXApplication 7 | { 8 | public override void OnAppLoad() 9 | { 10 | // Set the application title 11 | Title = "Best Sellers"; 12 | 13 | // Add navigation mappings 14 | NavigationMap.Add(string.Empty, new CategoryListController()); 15 | NavigationMap.Add("{Category}", new BookListController()); 16 | NavigationMap.Add("{Category}/{Book}", new BookController()); 17 | 18 | // Set default navigation URI 19 | NavigateOnLoad = string.Empty; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/Controllers/BookController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Collections.Generic; 4 | using MonoCross.Navigation; 5 | 6 | namespace BestSellers.Controllers 7 | { 8 | class BookController : MXController 9 | { 10 | public override string Load(Dictionary parameters) 11 | { 12 | string category = parameters.ContainsKey("Category") ? parameters["Category"] : string.Empty; 13 | string book = parameters.ContainsKey("Book") ? parameters["Book"] : string.Empty; 14 | 15 | Model = FindBook(category, book); 16 | 17 | return ViewPerspective.Read; 18 | } 19 | 20 | public static Book FindBook(string category, string bookId) 21 | { 22 | string urlBooks = "http://api.nytimes.com/svc/books/v2/lists.xml?list={0}&isbn={1}&api-key=d8ad3be01d98001865e96ee55c1044db:8:57889697"; 23 | 24 | urlBooks = String.Format(urlBooks, category.Replace(" ", "-"), bookId); 25 | 26 | List books = BookListController.BookList(category); 27 | 28 | var results = books.Where(b => b.ISBN == bookId); 29 | 30 | if (results == null || results.Count() < 1) return new Book(); 31 | return results.FirstOrDefault(); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/HttpExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Net; 3 | using System.Threading; 4 | 5 | namespace BestSellers 6 | { 7 | public static class HttpExtensions 8 | { 9 | public static WebResponse GetResponse(this HttpWebRequest request) 10 | { 11 | var autoResetEvent = new AutoResetEvent(false); 12 | IAsyncResult asyncResult = request.BeginGetResponse(r => autoResetEvent.Set(), null); 13 | autoResetEvent.WaitOne(); 14 | 15 | return request.EndGetResponse(asyncResult); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/Model/BookList.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace BestSellers 4 | { 5 | public class BookList : List 6 | { 7 | public string Category { get; set; } 8 | public string CategoryDisplayName { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/Model/CategoryList.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace BestSellers 4 | { 5 | 6 | public class Category 7 | { 8 | public string DisplayName { get; set; } 9 | public string ListNameEncoded 10 | { 11 | get { return DisplayName.ToLower().Replace(' ', '-'); } 12 | } 13 | //public string OldestPublishedDate { get; set; } 14 | //public string NewestPublishedDate { get; set; } 15 | //public string Updated { get; set; } 16 | 17 | public override string ToString() 18 | { 19 | return DisplayName; 20 | } 21 | } 22 | 23 | public class CategoryList : List 24 | { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MonoCross/BestSellers Sample/BestSellers/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("BestSellers")] 10 | [assembly: AssemblyDescription("Best Sellers - MonoCross Example")] 11 | [assembly: AssemblyConfiguration("Portable Class Library Version")] 12 | [assembly: AssemblyCompany("ITR Mobility")] 13 | [assembly: AssemblyProduct("Best Sellers - MonoCross Example")] 14 | [assembly: AssemblyCopyright("Copyright © 2011")] 15 | [assembly: AssemblyTrademark("MonoCross")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: NeutralResourcesLanguage("en")] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | [assembly: AssemblyVersion("1.4.0.0")] 29 | [assembly: AssemblyFileVersion("1.4.0.0")] 30 | -------------------------------------------------------------------------------- /MonoCross/Console/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MonoCross.Console")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("MonoCross.Console")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("36db7bab-79a2-4a65-9522-fd4d1676a6d5")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.Android.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.Android.dll -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.Android.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.Android.pdb -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.NET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.NET.dll -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.NET.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.NET.pdb -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.iOS.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.iOS.dll -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.Utilities.iOS.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.Utilities.iOS.pdb -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.dll -------------------------------------------------------------------------------- /MonoCross/Distribution/MonoCross.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/MonoCross.pdb -------------------------------------------------------------------------------- /MonoCross/Distribution/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /MonoCross/Distribution/Newtonsoft.Json.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/Distribution/Newtonsoft.Json.pdb -------------------------------------------------------------------------------- /MonoCross/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zebra Technologies 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MonoCross/MonoCross.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/MonoCross.csproj -------------------------------------------------------------------------------- /MonoCross/MonoCross.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | MonoCross 5 | $version$ 6 | MonoCross Framework 7 | Zebra 8 | Zebra Technologies Corporation 9 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/LICENSE 10 | https://github.com/MonoCross/MonoCross 11 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/MonoCross.png 12 | false 13 | A cross-platform mobile framework using C# .NET and Mono to create shared-code apps on iOS, Android, Windows and Webkit. 14 | Cross-platform interfaces and implementations 15 | 4.0 Release for iFactr Open Source with MIT license. 16 | 2010-2018 Zebra Technologies Corp. 17 | MonoCross iFactr 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MonoCross/MonoCross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/MonoCross/MonoCross.png -------------------------------------------------------------------------------- /MonoCross/Navigation/ViewPerspective.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Navigation 2 | { 3 | /// 4 | /// Static class containing common perspectives returned by a 5 | /// 6 | public static class ViewPerspective 7 | { 8 | /// 9 | /// The default ViewPerspective for a model when none is specified. 10 | /// 11 | /// This perspective is usually associated with lists or dashboards that describe collections of a model. 12 | public const string Default = ""; 13 | /// 14 | /// The ViewPerspective for reading from a model. 15 | /// 16 | public const string Read = "GET"; 17 | /// 18 | /// The ViewPerspective for creating a model. 19 | /// 20 | public const string Create = "POST"; 21 | /// 22 | /// The ViewPerspective for modifying a model. 23 | /// 24 | public const string Update = "PUT"; 25 | /// 26 | /// The ViewPerspective for deleting a model. 27 | /// 28 | public const string Delete = "DELETE"; 29 | } 30 | } -------------------------------------------------------------------------------- /MonoCross/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("MonoCross")] 8 | [assembly: AssemblyDescription("MonoCross Framework")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Zebra Technologies Corporation")] 11 | [assembly: AssemblyProduct("MonoCross")] 12 | [assembly: AssemblyTrademark("")] 13 | [assembly: AssemblyCulture("")] 14 | [assembly: NeutralResourcesLanguage("en")] 15 | 16 | // Version information for an assembly consists of the following four values: 17 | // 18 | // Major Version 19 | // Minor Version 20 | // Build Number 21 | // Revision 22 | // 23 | // You can specify all the values or you can default the Build and Revision Numbers 24 | // by using the '*' as shown below: 25 | // [assembly: AssemblyVersion("1.0.*")] 26 | [assembly: AssemblyCopyright("Copyright © " + 27 | "2018")] 28 | [assembly: AssemblyVersion("4.1.0.42")] 29 | [assembly: AssemblyInformationalVersion("4.1.0.42-master.WorkingTree")] -------------------------------------------------------------------------------- /MonoCross/Touch/LoadingView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UIKit; 3 | using CoreGraphics; 4 | 5 | namespace MonoCross.Touch 6 | { 7 | /// 8 | /// Solution taken from: http://iphonedevelopertips.com/user-interface/uialertview-without-buttons-please-wait-dialog.html 9 | /// 10 | public class LoadingView : UIAlertView 11 | { 12 | private UIActivityIndicatorView _activityView; 13 | 14 | public void Show(string title) 15 | { 16 | Title = title; 17 | Show(); 18 | 19 | // Spinner - add after Show() or we have no Bounds. 20 | _activityView = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); 21 | _activityView.Frame = new CGRect((Bounds.Width / 2) - 15, Bounds.Height - 50, 30, 30); 22 | _activityView.StartAnimating(); 23 | AddSubview(_activityView); 24 | } 25 | 26 | public void Hide() 27 | { 28 | DismissWithClickedButtonIndex(0, true); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /MonoCross/Touch/MXTouchDialogView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using MonoTouch.Dialog; 6 | using Foundation; 7 | using UIKit; 8 | using MonoCross.Navigation; 9 | 10 | namespace MonoCross.Touch 11 | { 12 | public abstract class MXTouchDialogView : DialogViewController, IMXView 13 | { 14 | public MXTouchDialogView(UITableViewStyle style, RootElement root, bool pushing) : 15 | base(style, root, pushing) 16 | { 17 | } 18 | 19 | public T Model { get; set; } 20 | public Type ModelType { get { return typeof(T); } } 21 | public abstract void Render(); 22 | public void SetModel(object model) 23 | { 24 | Model = (T)model; 25 | } 26 | public object GetModel() 27 | { 28 | return Model; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /MonoCross/Touch/MXTouchViewAttributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MonoCross.Touch 4 | { 5 | /// 6 | /// View types used in marking views with navigational attributes 7 | /// 8 | public enum ViewNavigationContext 9 | { 10 | /// 11 | /// decide in context whether to place the view in the master or detail pane following the view that 12 | /// this is the default behavior if a view isn't marked with a style 13 | /// 14 | InContext, 15 | 16 | /// 17 | /// always place in the master pone in a large form factor layout 18 | /// 19 | Master, 20 | 21 | /// 22 | /// always place in the detail pane in a large form factor layout, this is equivalent to Master for small 23 | /// form-factor platforms 24 | /// 25 | Detail, 26 | 27 | /// 28 | /// view is a modal popup 29 | /// 30 | Modal, 31 | }; 32 | 33 | /// 34 | /// 35 | /// 36 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] 37 | public class MXTouchViewAttributes: System.Attribute 38 | { 39 | public ViewNavigationContext NavigationContext { get; set; } 40 | 41 | public MXTouchViewAttributes(ViewNavigationContext navigationContext) 42 | { 43 | NavigationContext = navigationContext; 44 | } 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /MonoCross/Touch/MXTouchViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using UIKit; 4 | using MonoTouch.Dialog; 5 | 6 | using MonoCross.Navigation; 7 | 8 | namespace MonoCross.Touch 9 | { 10 | /// 11 | /// 12 | /// 13 | public abstract class MXTouchViewController: UIViewController, IMXView 14 | { 15 | public MXTouchViewController () 16 | { 17 | } 18 | 19 | public T Model { get; set; } 20 | public Type ModelType { get { return typeof(T); } } 21 | public abstract void Render(); 22 | public void SetModel(object model) 23 | { 24 | Model = (T)model; 25 | } 26 | public object GetModel() 27 | { 28 | return Model; 29 | } 30 | } 31 | 32 | public abstract class MXTouchTableViewController: UITableViewController, IMXView 33 | { 34 | public MXTouchTableViewController() 35 | { 36 | } 37 | 38 | public T Model { get; set; } 39 | public Type ModelType { get { return typeof(T); } } 40 | public abstract void Render(); 41 | public void SetModel(object model) 42 | { 43 | Model = (T)model; 44 | } 45 | public object GetModel() 46 | { 47 | return Model; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /MonoCross/Touch/SplashViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UIKit; 3 | 4 | namespace MonoCross.Touch 5 | { 6 | /// 7 | /// Class to display the initial view when still warming up 8 | /// 9 | internal class SplashViewController: UIViewController 10 | { 11 | UIImageView _imageView; 12 | 13 | public SplashViewController (string imageFile) 14 | { 15 | UIImage image = null; 16 | if (!String.IsNullOrEmpty(imageFile)) 17 | image = UIImage.FromFile(imageFile); 18 | 19 | if (image != null) 20 | _imageView = new UIImageView(image); 21 | else 22 | _imageView = new UIImageView(); 23 | _imageView.ContentMode = UIViewContentMode.Center; 24 | _imageView.BackgroundColor = UIColor.White; 25 | 26 | this.View = _imageView; 27 | } 28 | 29 | public override void WillRotate (UIInterfaceOrientation toInterfaceOrientation, double duration) 30 | { 31 | base.WillRotate (toInterfaceOrientation, duration); 32 | 33 | /* 34 | UIImageView view = this.View as UIImageView; 35 | 36 | if (toInterfaceOrientation == UIInterfaceOrientation.LandscapeLeft || 37 | toInterfaceOrientation == UIInterfaceOrientation.LandscapeRight) 38 | view.Image = UIImage.FromFile("Images/Launch-Landscape.png"); 39 | else 40 | view.Image = UIImage.FromFile("Images/Launch-Portrait.png"); 41 | */ 42 | } 43 | 44 | [Obsolete] 45 | public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 46 | { 47 | return true; 48 | } 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Encryption/EncryptionMode.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities 2 | { 3 | /// 4 | /// The available modes of data encryption. 5 | /// 6 | public enum EncryptionMode 7 | { 8 | /// 9 | /// Encryption is determined by the application. 10 | /// 11 | Default, 12 | /// 13 | /// No encryption will be done. 14 | /// 15 | NoEncryption, 16 | /// 17 | /// The data will be encrypted. 18 | /// 19 | Encryption, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /MonoCross/Utilities/EncryptionMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace MonoCross.Utilities.Encryption 7 | { 8 | public enum EncryptionMode 9 | { 10 | Default, 11 | NoEncryption, 12 | AesEncryption 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Extensions/EnumExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MonoCross 4 | { 5 | /// 6 | /// Provides Enum methods available in .NET 4.0 7 | /// 8 | public static class EnumExtensions 9 | { 10 | /// 11 | /// Check to see if a flags enumeration has a specific flag set. 12 | /// 13 | /// Flags enumeration to check 14 | /// Flag to check for 15 | /// 16 | public static bool HasFlag(this Enum variable, Enum value) 17 | { 18 | if (variable == null) 19 | return false; 20 | 21 | if (value == null) 22 | throw new ArgumentNullException("value"); 23 | 24 | // Not as good as the .NET 4 version of this function, but should be good enough 25 | if (!Enum.IsDefined(variable.GetType(), value)) 26 | { 27 | throw new ArgumentException(string.Format( 28 | "Enumeration type mismatch. The flag is of type '{0}', was expecting '{1}'.", 29 | value.GetType(), variable.GetType())); 30 | } 31 | 32 | ulong num = Convert.ToUInt64(value); 33 | return ((Convert.ToUInt64(variable) & num) == num); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Extensions/WaitHandleExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace System.Threading 2 | { 3 | /// 4 | /// Provides WaitHandle methods available in .NET 4.0 5 | /// 6 | public static class WaitHandleExtensions 7 | { 8 | /// 9 | /// Blocks the current thread until the current receives a signal, using a 32-bit signed integer to specify the time interval. 10 | /// 11 | /// The current WaitHandle. 12 | /// The number of milliseconds to wait, or (-1) to wait indefinitely. 13 | /// true if the current instance receives a signal; otherwise, false. 14 | public static bool WaitOne(this WaitHandle handle, int milliseconds) 15 | { 16 | return handle.WaitOne(milliseconds, false); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Imaging/Interfaces/IImageData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MonoCross 4 | { 5 | /// 6 | /// Defines an object that contains image data. 7 | /// 8 | public interface IImageData 9 | { 10 | /// 11 | /// Returns an array of bytes that represent the individual pixel values of the image. 12 | /// 13 | byte[] GetBytes(); 14 | 15 | /// 16 | /// Returns an object containing any available Exif data for the image. 17 | /// 18 | IExifData GetExifData(); 19 | 20 | /// 21 | /// Saves the image data to the specified path on disk using the specified file format. 22 | /// 23 | /// The path at which to save the image data. 24 | /// The file format in which to save the image data. 25 | void Save(string filePath, ImageFileFormat format); 26 | } 27 | 28 | /// 29 | /// Describes the available file formats for image data. 30 | /// 31 | public enum ImageFileFormat : byte 32 | { 33 | /// 34 | /// The Joint Photographics Experts Group file format. 35 | /// 36 | JPEG, 37 | /// 38 | /// The Portable Network Graphics file format. 39 | /// 40 | PNG 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Logging/LogMessageType.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Logging 2 | { 3 | /// 4 | /// The available logger message levels. 5 | /// 6 | public enum LogMessageType 7 | { 8 | /// 9 | /// An informational message. 10 | /// 11 | Info = 3, 12 | /// 13 | /// A warning message. 14 | /// 15 | Warn = 4, 16 | /// 17 | /// A message for debugging. 18 | /// 19 | Debug = 1, 20 | /// 21 | /// A non-fatal error message. 22 | /// 23 | Error = 5, 24 | /// 25 | /// A fatal error message. 26 | /// 27 | Fatal = 6, 28 | /// 29 | /// A metric message. 30 | /// 31 | Metric = 2, 32 | /// 33 | /// A message about the current platform. 34 | /// 35 | Platform = 0, 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Logging/LoggerFactory.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | 3 | namespace MonoCross.Utilities.Logging 4 | { 5 | /// 6 | /// Represents a logging factory. 7 | /// 8 | internal static class LoggerFactory 9 | { 10 | /// 11 | /// Creates an ILog instance in the specified log path. 12 | /// 13 | /// A representing the Log path value. 14 | /// 15 | internal static ILog Create(string logPath) 16 | { 17 | return MXContainer.Resolve((object)logPath); 18 | } 19 | 20 | /// 21 | /// Creates an ILog instance in the specified log path, and of the specified type. 22 | /// 23 | /// A representing the Log path value. 24 | /// Type of the logger. 25 | /// 26 | internal static ILog Create(string logPath, LoggerType loggerType) 27 | { 28 | return MXContainer.Resolve(loggerType.ToString(), (object)logPath); 29 | } 30 | } 31 | 32 | /// 33 | /// Represents the available logger types. 34 | /// 35 | public enum LoggerType 36 | { 37 | /// 38 | /// A Basic Logger. 39 | /// 40 | BasicLogger, 41 | //NLog, 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Logging/LoggingLevel.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Logging 2 | { 3 | /// 4 | /// The level of verbosity when logging messages. 5 | /// 6 | public enum LoggingLevel 7 | { 8 | /// 9 | ///Logging level 1. Platform messages and above are logged. This is the most verbose logging level. 10 | /// 11 | Platform = 0, 12 | /// 13 | ///Logging level 2. Debug messages and above are logged. 14 | /// 15 | Debug = 1, 16 | /// 17 | ///Logging level 3. Metric messages and above are logged. 18 | /// 19 | Metric = 2, 20 | /// 21 | ///Logging level 4. Info messages and above are logged. 22 | /// 23 | Info = 3, 24 | /// 25 | ///Logging level 5. Warning messages and above are logged. 26 | /// 27 | Warn = 4, 28 | /// 29 | ///Logging level 6. Error messages and above are logged. 30 | /// 31 | Error = 5, 32 | /// 33 | ///Logging level 7. Only fatal messages are logged. This is the least verbose logging level. 34 | /// 35 | Fatal = 6, 36 | } 37 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Logging/NetworkStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MonoCross.Utilities.Logging 4 | { 5 | public enum NetworkStatus 6 | { 7 | NotReachable, 8 | ReachableViaCarrierDataNetwork, 9 | ReachableViaWiFiNetwork 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /MonoCross/Utilities/MobilePlatform.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross 2 | { 3 | /// 4 | /// The available platforms in the MonoCross framework. 5 | /// 6 | public enum MobilePlatform 7 | { 8 | /// 9 | /// The platform is unknown. 10 | /// 11 | Unknown, 12 | /// 13 | /// A Google Android device. 14 | /// 15 | Android, 16 | /// 17 | /// A RIM BlackBerry device. 18 | /// 19 | BlackBerry, 20 | /// 21 | /// An Apple iPhone or iPod Touch device. 22 | /// 23 | iPhone, 24 | /// 25 | /// An Apple iPad device. 26 | /// 27 | iPad, 28 | /// 29 | /// A WebOS device like the Palm Pre or Pixi. 30 | /// 31 | WebOS, 32 | /// 33 | /// A Microsoft Windows PC. 34 | /// 35 | Windows, 36 | /// 37 | /// A Microsoft Internet Explorer browser. 38 | /// 39 | WindowsIE, 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /MonoCross/Utilities/MonoCross.Utilities.Android.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | MonoCross.Utilities.Android 5 | $version$ 6 | MonoCross.Utilities.Android 7 | Zebra 8 | Zebra Technologies Corporation 9 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/LICENSE 10 | https://github.com/MonoCross/MonoCross 11 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/MonoCross.png 12 | false 13 | Specific to the Android environment, this package contains concrete, platform-specific implementations of the MonoCross Utilities (Encryption, Logging, Network, Serialization, Threading) 14 | MonoCross.Utilities implementation for Android 15 | Open-source release coordinated with iFactr 4.0 16 | 2010-2018 Zebra Technologies Corp. 17 | MonoCross iFactr Android 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MonoCross/Utilities/MonoCross.Utilities.NET.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | MonoCross.Utilities.NET 5 | $version$ 6 | MonoCross.Utilities.NET 7 | Zebra 8 | Zebra Technologies Corporation 9 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/LICENSE 10 | https://github.com/MonoCross/MonoCross 11 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/MonoCross.png 12 | false 13 | Specific to the Windows .NET environment, this package contains concrete, platform-specific implementations of the MonoCross Utilities (Encryption, Logging, Network, Serialization, Threading) 14 | MonoCross.Utilities implementation for .NET 15 | Open-source release coordinated with iFactr 4.0 16 | 2010-2018 Zebra Technologies Corp. 17 | MonoCross iFactr dotNET dotNET-CLI 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MonoCross/Utilities/MonoCross.Utilities.iOS.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | MonoCross.Utilities.iOS 5 | $version$ 6 | MonoCross.Utilities.iOS 7 | Zebra 8 | Zebra Technologies Corporation 9 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/LICENSE 10 | https://github.com/MonoCross/MonoCross 11 | https://raw.githubusercontent.com/MonoCross/MonoCross/master/MonoCross.png 12 | false 13 | Specific to Apple's iOS environment, this package contains concrete, platform-specific implementations of the MonoCross Utilities (Encryption, Logging, Network, Serialization, Threading) 14 | MonoCross.Utilities implementation for iOS 15 | Open-source release coordinated with iFactr 4.0 16 | 2010-2018 Zebra Technologies Corp. 17 | MonoCross iFactr iOS 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Network/AndroidNetwork.cs: -------------------------------------------------------------------------------- 1 | using Android.Runtime; 2 | using MonoCross.Navigation; 3 | 4 | namespace MonoCross.Utilities.Networking 5 | { 6 | class AndroidNetwork : NetworkAsynch 7 | { 8 | private readonly IFetcher _fetcher; 9 | 10 | [Preserve] 11 | public AndroidNetwork() 12 | { 13 | _fetcher = MXContainer.Resolve(); 14 | } 15 | 16 | [Preserve] 17 | public AndroidNetwork(IFetcher fetcher) 18 | { 19 | _fetcher = fetcher; 20 | } 21 | 22 | public override IFetcher Fetcher 23 | { 24 | get { return _fetcher; } 25 | } 26 | 27 | public override IPoster Poster 28 | { 29 | get 30 | { 31 | return new PosterAsynch(); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Network/NetworkFactory.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | 3 | namespace MonoCross.Utilities.Network 4 | { 5 | /// 6 | /// Provides methods for creating a network access strategy. 7 | /// 8 | public static class NetworkFactory 9 | { 10 | /// 11 | /// Creates a new instance. 12 | /// 13 | public static INetwork Create() 14 | { 15 | return MXContainer.Resolve(); 16 | } 17 | 18 | // If we ever want to make an implementation of INetwork that we want in core, 19 | /// 20 | /// Creates a new instance of the specified network type. 21 | /// 22 | /// The type of to create. 23 | /// 24 | public static INetwork Create(NetworkType networkType) 25 | { 26 | return MXContainer.Resolve(networkType.ToString()); 27 | } 28 | } 29 | 30 | /// 31 | /// The available networking types. 32 | /// 33 | public enum NetworkType 34 | { 35 | /// 36 | /// Default network type with asynchronous support for Get/Post methods. 37 | /// 38 | NetworkAsynch, 39 | /// 40 | /// Network type with synchronous support for Get/Post methods. 41 | /// 42 | NetworkSynch, 43 | } 44 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Network/NetworkGetMethod.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Network 2 | { 3 | /// 4 | /// The available restrictions that can be imposed on network GET methods. 5 | /// 6 | public enum NetworkGetMethod 7 | { 8 | /// 9 | /// No restrictions. 10 | /// 11 | Any, 12 | /// 13 | /// Caching is not allowed. 14 | /// 15 | NoCache 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Network/NetworkPostMethod.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Network 2 | { 3 | /// 4 | /// The available restrictions that can be imposed on network POST methods. 5 | /// 6 | public enum NetworkPostMethod 7 | { 8 | /// 9 | /// No restrictions. 10 | /// 11 | Any, 12 | /// 13 | /// Synchronous methods are allowed. 14 | /// 15 | ImmediateSynchronous, 16 | /// 17 | /// Asynchronous methods are allowed. 18 | /// 19 | QueuedAsynchronous, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Notification/Notify.MT.cs: -------------------------------------------------------------------------------- 1 | using AudioToolbox; 2 | 3 | namespace MonoCross.Utilities.Notification 4 | { 5 | public static class Notify 6 | { 7 | static Notify() 8 | { 9 | // Setup your session 10 | AudioSession.Initialize(); 11 | AudioSession.Category = AudioSessionCategory.MediaPlayback; 12 | AudioSession.SetActive(true); 13 | } 14 | 15 | public static void PlaySound(string uri) 16 | { 17 | // Play the file 18 | var sound = SystemSound.FromFile(uri); 19 | sound.PlaySystemSound(); 20 | } 21 | 22 | public static void Vibrate() 23 | { 24 | SystemSound.Vibrate.PlaySystemSound(); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Notification/Notify.WP.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Net; 3 | using System.Windows; 4 | using System.Windows.Controls; 5 | using System.Windows.Documents; 6 | using System.Windows.Ink; 7 | using System.Windows.Input; 8 | using System.Windows.Media; 9 | using System.Windows.Media.Animation; 10 | using System.Windows.Shapes; 11 | using System.IO; 12 | using Microsoft.Xna.Framework.Audio; 13 | using Microsoft.Xna.Framework; 14 | 15 | using Microsoft.Devices; 16 | 17 | namespace MonoCross.Utilities.Notification 18 | { 19 | public static class Notify 20 | { 21 | public static void PlaySound(string uri) 22 | { 23 | Stream stream = TitleContainer.OpenStream(uri); 24 | SoundEffect effect = SoundEffect.FromStream(stream); 25 | FrameworkDispatcher.Update(); 26 | effect.Play(); 27 | } 28 | 29 | public static void Vibrate() 30 | { 31 | VibrateController vibrate = VibrateController.Default; 32 | vibrate.Start(TimeSpan.FromMilliseconds(1000)); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Resources/WindowsResources.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Linq; 4 | using System.Resources; 5 | 6 | namespace MonoCross.Utilities.Resources 7 | { 8 | public class WindowsResources : BasicResources 9 | { 10 | public override object GetObject(string key) 11 | { 12 | return GetObject(key, CultureInfo.CurrentUICulture); 13 | } 14 | 15 | public override object GetObject(string key, CultureInfo culture) 16 | { 17 | foreach (var resource in Resources.Reverse()) 18 | { 19 | try 20 | { 21 | var retval = resource.GetObject(key, culture); 22 | if (retval != null) 23 | return retval; 24 | } 25 | catch (Exception e) 26 | { 27 | Device.Log.Debug(string.Format("Object \"{0}\" not found for culture: {1}", key, culture), e); 28 | } 29 | } 30 | return null; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Scanning/LineaPro.cs: -------------------------------------------------------------------------------- 1 | #if TOUCH 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | using UIKit; 8 | 9 | using LineaSDK; 10 | 11 | namespace MonoCross.Utilities.Barcode 12 | { 13 | public class LineaPro : BarcodeScanner, IBarcodeScanner 14 | { 15 | private static LineaPro _instance = null; 16 | 17 | LineaSDK.Linea Linea; 18 | LineaProDelegate LineaDelegate; 19 | 20 | public static LineaPro GetInstance() 21 | { 22 | if (_instance == null) 23 | _instance = new LineaPro(); 24 | return _instance; 25 | } 26 | public static LineaPro GetInstance(UIWebView webView) 27 | { 28 | if (_instance == null) 29 | _instance = new LineaPro(webView); 30 | return _instance; 31 | } 32 | 33 | public LineaPro() : base() 34 | { 35 | Linea = new LineaSDK.Linea(); 36 | LineaDelegate = new LineaProDelegate(); 37 | Linea.Delegate = LineaDelegate; 38 | Linea.Connect(); 39 | } 40 | 41 | public LineaPro(UIWebView webView) : base() 42 | { 43 | Linea = new LineaSDK.Linea(); 44 | LineaDelegate = new LineaProDelegate(webView); 45 | Linea.Delegate = LineaDelegate; 46 | Linea.Connect(); 47 | 48 | } 49 | } 50 | } 51 | #endif -------------------------------------------------------------------------------- /MonoCross/Utilities/Scanning/RedLaser.MT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MonoCross.Utilities.Barcode 4 | { 5 | public partial class RedLaser 6 | { 7 | public static RedLaser GetInstance() 8 | { 9 | if (_instance == null) 10 | _instance = new RedLaser(); 11 | return _instance; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Scanning/RedLaser.cs: -------------------------------------------------------------------------------- 1 | #if DROID || TOUCH 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | 7 | namespace MonoCross.Utilities.Barcode 8 | { 9 | public partial class RedLaser : BarcodeScanner 10 | { 11 | private static RedLaser _instance = null; 12 | 13 | private RedLaser() 14 | { 15 | _available = new List(); 16 | _available.Add(Symbology.UPCA); 17 | _available.Add(Symbology.UPCE); 18 | _available.Add(Symbology.EAN8); 19 | _available.Add(Symbology.EAN13); 20 | _available.Add(Symbology.Code39); 21 | _available.Add(Symbology.Code93); 22 | _available.Add(Symbology.Code128); 23 | _available.Add(Symbology.Sticky); 24 | 25 | _enabled = _available; 26 | } 27 | 28 | public override bool NeedsStartToScan 29 | { 30 | get { return true; } 31 | } 32 | } 33 | } 34 | #endif -------------------------------------------------------------------------------- /MonoCross/Utilities/Scanning/Symbology.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Barcode 2 | { 3 | // enumaration of 1 Dimensional barcode symbologies 4 | public enum Symbology 5 | { 6 | UNKNOWN, // for scanners that don't report the scanned barcode output type 7 | UPCA, // redlaser?, linea-pro, koamtec 300i 8 | UPCE, // redlaser, linea-pro, koamtec 300i 9 | EAN8, // redlaser, linea-pro, koamtec 300i 10 | EAN13, // redlaser, linea-pro, koamtec 300i 11 | EAN128, // redlaser, linea-pro, koamtec 300i 12 | Code11, // koamtec 300i 13 | Code32, // koamtec 300i 14 | Code39, // redlaser, linea-pro, koamtec 300i 15 | Code93, // redlaser (android only) 16 | Code128, // redlaser, linea-pro, koamtec 300i 17 | Codabar, // linea-pro, koamtec 300i 18 | I2of5, // linea-pro, koamtec 300i 19 | Sticky, // redlaser (no idea what this is but redlaser supports it) 20 | // others supported by koamtec 300i 21 | // GS1-128 (UCC/EAN128), MSI, Plessey, PosiCode, GS1 DataBar (Omni/Limited/Expanded), S2of5IA, S2of5ID, TLC39, Telepen, Trioptic 22 | DataMatrix, // EMDK 2D barcode 23 | DataBar, // EMDK 2D barcode 24 | PDF417, // EMDK 2D barcode 25 | QRCode, // EMDK 2D barcode 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Serialization/SerializationFormat.cs: -------------------------------------------------------------------------------- 1 | namespace MonoCross.Utilities.Serialization 2 | { 3 | /// 4 | /// Specifies the valid serialization formats. 5 | /// 6 | public enum SerializationFormat 7 | { 8 | /// 9 | /// Formats serialized objects in JSON 10 | /// 11 | JSON, 12 | /// 13 | /// Formats serialized objects in XML. 14 | /// 15 | XML, 16 | /// 17 | /// Formats serialized objects in a custom defined format. 18 | /// 19 | CUSTOM, 20 | /// 21 | /// Formats serialized objects in a OData JSON light. 22 | /// 23 | ODATA, 24 | } 25 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Threading/AndroidThread.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Runtime; 3 | 4 | namespace MonoCross.Utilities.Threading 5 | { 6 | public class AndroidThread : TaskThread 7 | { 8 | [Preserve] 9 | public AndroidThread() { } 10 | 11 | public override void ExecuteOnMainThread(Delegate method) 12 | { 13 | AndroidDevice.Instance.Context.RunOnUiThread(() => method.DynamicInvoke()); 14 | } 15 | 16 | public override void ExecuteOnMainThread(Delegate method, object parameter) 17 | { 18 | AndroidDevice.Instance.Context.RunOnUiThread(() => method.DynamicInvoke(parameter)); 19 | } 20 | 21 | public override void ExecuteOnMainThread(Action action) 22 | { 23 | AndroidDevice.Instance.Context.RunOnUiThread(() => action()); 24 | } 25 | 26 | public override void ExecuteOnMainThread(Action action, object parameter) 27 | { 28 | AndroidDevice.Instance.Context.RunOnUiThread(() => action(parameter)); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Threading/CompactFrameworkThread.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace MonoCross.Utilities.Threading 5 | { 6 | public class CompactFrameworkThread : BasicThread 7 | { 8 | public Control DispatcherSource 9 | { 10 | get; 11 | set; 12 | } 13 | 14 | public override void ExecuteOnMainThread(Delegate method) 15 | { 16 | DispatcherSource.Invoke(method); 17 | } 18 | 19 | public override void ExecuteOnMainThread(Delegate method, object parameter) 20 | { 21 | DispatcherSource.Invoke(method, parameter); 22 | } 23 | 24 | public override void ExecuteOnMainThread(Action action) 25 | { 26 | DispatcherSource.Invoke(action); 27 | } 28 | 29 | public override void ExecuteOnMainThread(Action action, object parameter) 30 | { 31 | DispatcherSource.Invoke(action, parameter); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Threading/ThreadFactory.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | 3 | namespace MonoCross.Utilities.Threading 4 | { 5 | /// 6 | /// Provides methods for creating threading utilities. 7 | /// 8 | public static class ThreadFactory 9 | { 10 | /// 11 | /// Creates a new instance. 12 | /// 13 | public static IThread Create() 14 | { 15 | return MXContainer.Resolve(); 16 | } 17 | 18 | /// 19 | /// Creates a new instance of the specified thread type. 20 | /// 21 | /// The type of to create. 22 | public static IThread Create(ThreadType threadType) 23 | { 24 | return MXContainer.Resolve(threadType.ToString()); 25 | } 26 | } 27 | 28 | /// 29 | /// The available threading types. 30 | /// 31 | public enum ThreadType 32 | { 33 | /// 34 | /// Default thread type that works across multiple platforms. 35 | /// 36 | BasicThread, 37 | /// 38 | /// Mock thread type for platforms that don't support threading. 39 | /// 40 | MockThread 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /MonoCross/Utilities/Threading/TouchThread.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using UIKit; 4 | 5 | namespace MonoCross.Utilities.Threading 6 | { 7 | public class TouchThread : TaskThread 8 | { 9 | public override void ExecuteOnMainThread(Delegate method) 10 | { 11 | UIApplication.SharedApplication.InvokeOnMainThread(() => method.DynamicInvoke()); 12 | } 13 | 14 | public override void ExecuteOnMainThread(Delegate method, object parameter) 15 | { 16 | UIApplication.SharedApplication.InvokeOnMainThread(() => method.DynamicInvoke(parameter)); 17 | } 18 | 19 | public override void ExecuteOnMainThread(Action action) 20 | { 21 | UIApplication.SharedApplication.InvokeOnMainThread(() => action.Invoke()); 22 | } 23 | 24 | public override void ExecuteOnMainThread(Action action, object parameter) 25 | { 26 | UIApplication.SharedApplication.InvokeOnMainThread(() => action.Invoke(parameter)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /MonoCross/Utilities/TouchDevice.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | using System; 3 | using UIKit; 4 | 5 | namespace MonoCross.Utilities 6 | { 7 | public class TouchDevice : Device 8 | { 9 | public override void Initialize() 10 | { 11 | ApplicationPath = string.Empty; 12 | DataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/"; 13 | MXContainer.RegisterSingleton(typeof(Threading.TouchThread)); 14 | MXContainer.RegisterSingleton(typeof(Resources.WindowsResources)); 15 | MXContainer.RegisterSingleton(typeof(Encryption.AesEncryption)); 16 | MXContainer.RegisterSingleton(typeof(ImageComposition.TouchCompositor)); 17 | Platform = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ? MobilePlatform.iPad : MobilePlatform.iPhone; 18 | } 19 | 20 | public static new TouchDevice Instance 21 | { 22 | get 23 | { 24 | var device = Device.Instance as TouchDevice; 25 | if (device == null) 26 | { 27 | device = new TouchDevice(); 28 | Device.Instance = device; 29 | } 30 | return device; 31 | } 32 | set { Device.Instance = value; } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /MonoCross/Utilities/Xml.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Linq; 2 | 3 | namespace MonoCross.Utilities 4 | { 5 | public static class Xml 6 | { 7 | public static string GetAttributeValue(this XElement element, string attributeName) 8 | { 9 | XAttribute attribute = element.Attribute(attributeName); 10 | return attribute != null ? attribute.Value : string.Empty; 11 | } 12 | 13 | public static string GetElementValue(this XElement element) 14 | { 15 | return element != null ? element.Value : string.Empty; 16 | } 17 | 18 | public static string GetElementValue(this XElement element, string elementName) 19 | { 20 | XElement child = element.Element(elementName); 21 | return child != null ? child.Value : string.Empty; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MonoCross/WPF/MXPageView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Controls; 3 | using MonoCross.Navigation; 4 | 5 | namespace MonoCross.WPF 6 | { 7 | /// 8 | /// A for rendering MonoCross views. 9 | /// 10 | /// 11 | public abstract class MXPageView : Page, IMXView 12 | { 13 | /// 14 | /// Gets or sets the model for this view. 15 | /// 16 | public T Model { get; set; } 17 | 18 | /// 19 | /// The type of the model displayed by this view 20 | /// 21 | public Type ModelType { get { return typeof(T); } } 22 | 23 | /// 24 | /// Displays the view according to the state of the model. 25 | /// 26 | public abstract void Render(); 27 | 28 | public object GetModel() 29 | { 30 | return Model; 31 | } 32 | 33 | /// 34 | /// Sets the model for the view. 35 | /// 36 | /// The model to associate with the view. 37 | /// Thrown if a model of the wrong type is set. 38 | public void SetModel(object model) 39 | { 40 | Model = (T)model; 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /MonoCross/WPF/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.34003 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace MonoCross.WPF.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MonoCross/WPF/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MonoCross/Webkit/MXWebkitDialogView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Web; 6 | using System.Web.UI; 7 | using System.IO; 8 | 9 | using MonoCross.Navigation; 10 | 11 | using Webkit.Dialog; 12 | 13 | namespace MonoCross.Webkit 14 | { 15 | public class MXWebkitDialogView : MXWebkitView, IMXView 16 | { 17 | public RootElement Root { get; set; } 18 | 19 | public static void WriteRootToResponse(string viewId, string viewTitle, RootElement root) 20 | { 21 | string xml = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Ajax.xml")); 22 | xml = xml.Replace("{ViewId}", viewId); 23 | xml = xml.Replace("{Title}", viewTitle); 24 | using (System.IO.StringWriter strwriter = new System.IO.StringWriter()) 25 | { 26 | using (HtmlTextWriter writer = new HtmlTextWriter(strwriter)) 27 | { 28 | root.Submit.Control.RenderControl(writer); 29 | root.Cancel.Control.RenderControl(writer); 30 | root.Control.RenderControl(writer); 31 | xml = xml.Replace("{Markup}", strwriter.ToString()); 32 | } 33 | } 34 | HttpContext.Current.Response.ContentType = "application/xml"; 35 | HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; 36 | HttpContext.Current.Response.Output.Write(xml); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /MonoCross/Webkit/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MonoCross.Webkit")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("MonoCross.Webkit")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("fe06d21c-96d8-4963-8e18-133c2cbf0e6f")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MonoCross/build.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | :: Check prerequisites 5 | if not "%VisualStudioVersion%" GEQ "14.0" ( 6 | echo SUGGESTION: Try running from a Visual Studio 2015 Command Prompt. 7 | exit /b 1 8 | ) 9 | 10 | :: Check for a custom MSBuild path. If not defined, default to the one in your path. 11 | if not defined MSBUILDCUSTOMPATH ( 12 | set MSBUILDCUSTOMPATH=MSBuild.exe 13 | ) 14 | 15 | echo ** MSBuild Path: %MSBUILDCUSTOMPATH% 16 | echo ** Building all sources 17 | 18 | :: Call MSBuild 19 | echo ** "%MSBUILDCUSTOMPATH%" build.xml /verbosity:normal /p:Configuration=Release %* 20 | %MSBUILDCUSTOMPATH% build.xml /verbosity:normal /p:Configuration=Release %* 21 | %MSBUILDCUSTOMPATH% build.xml /verbosity:normal /p:Configuration=Release;Framework=./Utilities;Ext=.Utilities.Android %* 22 | %MSBUILDCUSTOMPATH% build.xml /verbosity:normal /p:Configuration=Release;Framework=./Utilities;Ext=.Utilities.iOS %* 23 | %MSBUILDCUSTOMPATH% build.xml /verbosity:normal /p:Configuration=Release;Framework=./Utilities;Ext=.Utilities.NET %* 24 | set BUILDERRORLEVEL=%ERRORLEVEL% 25 | echo. 26 | 27 | echo ** Build completed. Exit code: %BUILDERRORLEVEL% 28 | 29 | exit /b %BUILDERRORLEVEL% 30 | 31 | pause -------------------------------------------------------------------------------- /build.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | :: Check prerequisites 5 | if not "%VisualStudioVersion%" GEQ "14.0" ( 6 | echo SUGGESTION: Try running from a Visual Studio 2015 Command Prompt. 7 | exit /b 1 8 | ) 9 | 10 | :: Check for a custom MSBuild path. If not defined, default to the one in your path. 11 | if not defined MSBUILDCUSTOMPATH ( 12 | set MSBUILDCUSTOMPATH=MSBuild.exe 13 | ) 14 | 15 | echo ** MSBuild Path: %MSBUILDCUSTOMPATH% 16 | echo ** Building all sources 17 | 18 | :: Call MSBuild 19 | echo ** "%MSBUILDCUSTOMPATH%" build.xml /verbosity:normal /p:Configuration=Release %* 20 | %MSBUILDCUSTOMPATH% build.xml /verbosity:normal /p:Configuration=Release %* 21 | set BUILDERRORLEVEL=%ERRORLEVEL% 22 | echo. 23 | 24 | echo ** Build completed. Exit code: %BUILDERRORLEVEL% 25 | 26 | exit /b %BUILDERRORLEVEL% 27 | 28 | pause -------------------------------------------------------------------------------- /iFactr.UI.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.24720.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iFactr.UI", "iFactr.UI\iFactr.UI.csproj", "{B6D01164-1AA8-4652-8C63-7DA813CF6163}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B6D01164-1AA8-4652-8C63-7DA813CF6163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {B6D01164-1AA8-4652-8C63-7DA813CF6163}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {B6D01164-1AA8-4652-8C63-7DA813CF6163}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {B6D01164-1AA8-4652-8C63-7DA813CF6163}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /iFactr.UI/Controls/ActionType.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | namespace iFactr.Core.Controls 3 | { 4 | /// 5 | /// The available types of actions to perform. 6 | /// 7 | [XmlType("CoreActionType", TypeName = "CoreActionType", Namespace = "Core")] 8 | public enum ActionType 9 | { 10 | /// 11 | /// An undefined or default action. 12 | /// 13 | Undefined, 14 | /// 15 | /// The action performs an addition or creation operation. 16 | /// 17 | Add, 18 | /// 19 | /// The action performs a cancellation operation. 20 | /// 21 | Cancel, 22 | /// 23 | /// The action performs an edit operation. 24 | /// 25 | Edit, 26 | /// 27 | /// The action performs a deletion operation. 28 | /// 29 | Delete, 30 | /// 31 | /// The action performs an operation for displaying additional information. 32 | /// 33 | More, 34 | /// 35 | /// The action performs a form submission operation. 36 | /// 37 | Submit, 38 | /// 39 | /// No action is performed. 40 | /// 41 | None, 42 | } 43 | } -------------------------------------------------------------------------------- /iFactr.UI/Controls/CancelButton.cs: -------------------------------------------------------------------------------- 1 | using System.Xml.Serialization; 2 | 3 | namespace iFactr.Core.Controls 4 | { 5 | /// 6 | /// Represents a button control with an action type of cancel. 7 | /// 8 | public class CancelButton : Button 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | public CancelButton() 14 | { 15 | base.Action = ActionType.Cancel; 16 | } 17 | 18 | /// 19 | /// Initializes a new instance of the class. 20 | /// 21 | /// The text to display. 22 | public CancelButton(string text) 23 | : base(text) 24 | { 25 | base.Action = ActionType.Cancel; 26 | } 27 | 28 | /// 29 | /// Gets the action type for this instance. 30 | /// 31 | /// The action type as an value. 32 | /// Because this is a CancelButton, this will always return ActionType.Cancel. 33 | [XmlIgnore] 34 | public sealed override ActionType Action { get { return ActionType.Cancel; } } 35 | } 36 | } -------------------------------------------------------------------------------- /iFactr.UI/Controls/HeaderLabel.cs: -------------------------------------------------------------------------------- 1 | using iFactr.Core.Styles; 2 | 3 | namespace iFactr.Core.Controls 4 | { 5 | /// 6 | /// Represents a Header Label control. 7 | /// 8 | public class HeaderLabel : Label 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | public HeaderLabel() { Style.HeaderLevel = 1; } 14 | 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | /// The instance to style this object with. 19 | public HeaderLabel(Style style) : base(style) { Style.HeaderLevel = 1; } 20 | } 21 | } -------------------------------------------------------------------------------- /iFactr.UI/Controls/IBlockPanelItem.cs: -------------------------------------------------------------------------------- 1 | using iFactr.Core.Layers; 2 | 3 | namespace iFactr.Core.Controls 4 | { 5 | /// 6 | /// Defines an object that can be inserted into s and s. 7 | /// 8 | public interface IBlockPanelItem 9 | { 10 | /// 11 | /// Returns an HTML representation of this instance. 12 | /// 13 | /// A representing this instance in HTML. 14 | string GetHtml(); 15 | } 16 | } -------------------------------------------------------------------------------- /iFactr.UI/Controls/PanelItem.cs: -------------------------------------------------------------------------------- 1 | using iFactr.Core.Layers; 2 | 3 | namespace iFactr.Core.Controls 4 | { 5 | /// 6 | /// An item that can be added to an element. 7 | /// 8 | public abstract class PanelItem : IBlockPanelItem 9 | { 10 | /// 11 | /// Returns an HTML representation of this instance. 12 | /// 13 | /// A representing this instance in HTML. 14 | public abstract string GetHtml(); 15 | 16 | /// 17 | /// Creates a deep-copy clone of this instance. 18 | /// 19 | /// The cloned instance. 20 | public PanelItem Clone() 21 | { 22 | return (PanelItem)CloneOverride(); 23 | } 24 | 25 | /// 26 | /// Creates a deep-copy clone of this instance. 27 | /// 28 | /// The cloned instance. 29 | protected virtual object CloneOverride() 30 | { 31 | return MemberwiseClone(); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /iFactr.UI/FormFactor.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core 2 | { 3 | /// 4 | /// The available application layouts for large form-factor devices. 5 | /// 6 | public enum FormFactor 7 | { 8 | /// 9 | /// The screen is split between the master pane and a detail pane. 10 | /// 11 | SplitView, 12 | /// 13 | /// No detail pane. Layers assigned to the detail pane will appear in the master pane instead. 14 | /// 15 | Fullscreen, 16 | /// 17 | /// A layout consisting of sliding panels that are stacked on top of each other. 18 | /// 19 | Accordion, 20 | } 21 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Attributes/EventDelegateAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Indicates that the handlers for the event are stored in a location other than the default. 7 | /// 8 | [AttributeUsage(AttributeTargets.Event)] 9 | public sealed class EventDelegateAttribute : Attribute 10 | { 11 | /// 12 | /// Gets the name of the delegate that contains the invocation list for the event. 13 | /// 14 | public string DelegateName { get; private set; } 15 | 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | /// The name of the delegate that contains the invocation list for the event. 20 | public EventDelegateAttribute(string delegateName) 21 | { 22 | DelegateName = delegateName; 23 | } 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Attributes/NativeOnlyAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Indicates that the API is not officially supported on web-based targets and may not function. 7 | /// 8 | public sealed class NativeOnlyAttribute : Attribute 9 | { 10 | /// 11 | /// Gets or sets a web URL that points to further information about the API that is decorated with this attribute. 12 | /// 13 | public string Url { get; set; } 14 | 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | /// A web URL that points to further information about the API that is decorated with this attribute. 19 | public NativeOnlyAttribute(string url) 20 | { 21 | Url = url; 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Attributes/PreferredPaneAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Indicates that a view has a preference for which pane it will be displayed in. 7 | /// If the preferred pane is of an equal or higher ordinal value to the current top pane, 8 | /// the view will be displayed in the preferred pane; otherwise, it will be displayed in the top pane. 9 | /// 10 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] 11 | public class PreferredPaneAttribute : Attribute 12 | { 13 | /// 14 | /// Gets the that the view prefers to be displayed in. 15 | /// 16 | public Pane Pane { get; private set; } 17 | 18 | /// 19 | /// Initializes a new instance of the class. 20 | /// 21 | /// The that the view prefers to be displayed in. 22 | public PreferredPaneAttribute(Pane pane) 23 | { 24 | Pane = pane; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/ICell.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines an entry in an instance. This is the base interface for 7 | /// the and interfaces. 8 | /// 9 | public interface ICell : IPairable, IEquatable 10 | { 11 | /// 12 | /// Gets or sets the background color of the cell. 13 | /// 14 | Color BackgroundColor { get; set; } 15 | 16 | /// 17 | /// Gets or sets the maximum amount of vertical space that the cell is allowed to consume. 18 | /// 19 | double MaxHeight { get; set; } 20 | 21 | /// 22 | /// Gets a collection for storing arbitrary data on the object. 23 | /// 24 | MetadataCollection Metadata { get; } 25 | 26 | /// 27 | /// Gets or sets the minimum amount of vertical space that the cell is allowed to consume. 28 | /// 29 | double MinHeight { get; set; } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/IGridTile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines a tile that acts as a grid for laying out various UI elements. 7 | /// 8 | public interface IGridTile : ITile, IGrid 9 | { 10 | /// 11 | /// Gets or sets the link to navigate to when the tile has been selected by the user. 12 | /// The navigation only occurs if there is no handler for the event. 13 | /// 14 | Link NavigationLink { get; set; } 15 | 16 | /// 17 | /// Occurs when the user selects the tile. 18 | /// 19 | [NativeOnly("http://support.ifactr.com/kb/webkit-compatibility")] 20 | event EventHandler Selected; 21 | 22 | /// 23 | /// Resets the invocation list of all events within the class. 24 | /// 25 | void NullifyEvents(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/IRichContentCell.cs: -------------------------------------------------------------------------------- 1 | using iFactr.Core.Layers; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines a cell that parses HTML or XML into rich content. Since not all platforms support HTML rendering 7 | /// or XML rendering, it is advised to only use the various Append methods to create the content. 8 | /// 9 | public interface IRichContentCell : ICell, IHtmlText 10 | { 11 | /// 12 | /// Gets or sets the foreground color of the cell. 13 | /// 14 | Color ForegroundColor { get; set; } 15 | 16 | /// 17 | /// Begins parsing the content in the Text property. 18 | /// 19 | void Load(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/ISectionFooter.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Defines a UI element that acts as a footer for a . 5 | /// 6 | public interface ISectionFooter : IPairable 7 | { 8 | /// 9 | /// Gets or sets the background color of the footer. 10 | /// 11 | Color BackgroundColor { get; set; } 12 | 13 | /// 14 | /// Gets or sets the color of the foreground content of the footer. 15 | /// 16 | Color ForegroundColor { get; set; } 17 | 18 | /// 19 | /// Gets or sets the font to be used when rendering the text. 20 | /// 21 | Font Font { get; set; } 22 | 23 | /// 24 | /// Gets or sets the text that will be displayed on screen. 25 | /// 26 | string Text { get; set; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/ISectionHeader.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Defines a UI element that acts as a header for a . 5 | /// 6 | public interface ISectionHeader : IPairable 7 | { 8 | /// 9 | /// Gets or sets the background color of the header. 10 | /// 11 | Color BackgroundColor { get; set; } 12 | 13 | /// 14 | /// Gets or sets the color of the foreground content of the header. 15 | /// 16 | Color ForegroundColor { get; set; } 17 | 18 | /// 19 | /// Gets or sets the font to be used when rendering the text. 20 | /// 21 | Font Font { get; set; } 22 | 23 | /// 24 | /// Gets or sets the text that will be displayed on screen. 25 | /// 26 | string Text { get; set; } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Cells and Tiles/Interfaces/ITile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines an entry in an instance. This is the base interface for 7 | /// the interface and is only supported on the Windows 8 Metro platform. 8 | /// 9 | public interface ITile : IPairable, IEquatable 10 | { 11 | /// 12 | /// Gets or sets the background color of the tile. 13 | /// 14 | Color BackgroundColor { get; set; } 15 | 16 | /// 17 | /// Gets or sets the maximum size that the tile is allowed to be. 18 | /// 19 | Size MaxSize { get; set; } 20 | 21 | /// 22 | /// Gets or sets the minimum size that the tile is allowed to be. 23 | /// 24 | Size MinSize { get; set; } 25 | 26 | /// 27 | /// Gets or sets the color with which to highlight the tile when it is selected. 28 | /// 29 | Color SelectionColor { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Controls/Interfaces/IImage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Controls 4 | { 5 | /// 6 | /// Defines a UI element for displaying an image from a file. 7 | /// 8 | public interface IImage : IControl 9 | { 10 | /// 11 | /// Gets or sets the full path of the file for the image that is being rendered. 12 | /// 13 | string FilePath { get; set; } 14 | 15 | /// 16 | /// Gets the width and height of the image. 17 | /// 18 | Size Dimensions { get; } 19 | 20 | /// 21 | /// Gets or sets how the image should be stretched to fill the space that is available to it. 22 | /// 23 | ContentStretch Stretch { get; set; } 24 | 25 | /// 26 | /// Occurs when the user clicks or taps on the image. 27 | /// 28 | event EventHandler Clicked; 29 | 30 | /// 31 | /// Occurs when the data for the image has been loaded into memory. 32 | /// 33 | event EventHandler Loaded; 34 | 35 | /// 36 | /// Returns the data of the image that is being displayed by this control. 37 | /// 38 | MonoCross.IImageData GetImageData(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Controls/Interfaces/ILabel.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Controls 2 | { 3 | /// 4 | /// Defines a UI element that can display a string of read-only text. 5 | /// 6 | public interface ILabel : IControl 7 | { 8 | /// 9 | /// Gets or sets the font to be used when rendering the text. 10 | /// 11 | Font Font { get; set; } 12 | 13 | /// 14 | /// Gets or sets the color of the text. 15 | /// 16 | Color ForegroundColor { get; set; } 17 | 18 | /// 19 | /// Gets or sets the color of the text when the label is in a cell that is being highlighted. 20 | /// 21 | Color HighlightColor { get; set; } 22 | 23 | /// 24 | /// Gets or sets the maximum number of lines of text that the label is allowed to display. 25 | /// A value equal to or less than 0 means that there is no limit. 26 | /// 27 | int Lines { get; set; } 28 | 29 | /// 30 | /// Gets or sets the text to be rendered. 31 | /// 32 | string Text { get; set; } 33 | 34 | /// 35 | /// Gets or sets how the text is aligned within the label. 36 | /// 37 | TextAlignment TextAlignment { get; set; } 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Controls/Interfaces/ISlider.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Controls 2 | { 3 | /// 4 | /// Defines a UI element that lets the user select from a range of numerical values by sliding a knob along a track. 5 | /// 6 | public interface ISlider : IControl 7 | { 8 | /// 9 | /// Gets or sets the color of the track between the knob and the maximum value. 10 | /// 11 | Color MaximumTrackColor { get; set; } 12 | 13 | /// 14 | /// Gets or sets the color of the track between the knob and the minimum value. 15 | /// 16 | Color MinimumTrackColor { get; set; } 17 | 18 | /// 19 | /// Gets or sets the maximum numerical value that the user can select with the knob. 20 | /// 21 | double MaxValue { get; set; } 22 | 23 | /// 24 | /// Gets or sets the minimum numerical value that the user can select with the knob. 25 | /// 26 | double MinValue { get; set; } 27 | 28 | /// 29 | /// Gets or sets the selected value of the slider. 30 | /// 31 | double Value { get; set; } 32 | 33 | /// 34 | /// Occurs when the slider's selected value has changed. 35 | /// 36 | [NativeOnly("http://support.ifactr.com/kb/webkit-compatibility")] 37 | event ValueChangedEventHandler ValueChanged; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Controls/Interfaces/ISwitch.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Controls 2 | { 3 | /// 4 | /// Defines a UI element that holds a boolean value and can be toggled by the user. 5 | /// 6 | public interface ISwitch : IControl 7 | { 8 | /// 9 | /// Gets or sets the color of the switch when its value is false. 10 | /// 11 | Color FalseColor { get; set; } 12 | 13 | /// 14 | /// Gets or sets the color of any additional visual information that is part of the switch. 15 | /// For example, Metro and Windows Phone include text that represents the value of the switch. 16 | /// 17 | Color ForegroundColor { get; set; } 18 | 19 | /// 20 | /// Gets or sets the color of the switch when its value is true. 21 | /// 22 | Color TrueColor { get; set; } 23 | 24 | /// 25 | /// Gets or sets the boolean value of the switch. 26 | /// 27 | bool Value { get; set; } 28 | 29 | /// 30 | /// Occurs when the switch's boolean value has changed. 31 | /// 32 | [NativeOnly("http://support.ifactr.com/kb/webkit-compatibility")] 33 | event ValueChangedEventHandler ValueChanged; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Interfaces/IElementHost.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace iFactr.UI.Controls 4 | { 5 | /// 6 | /// Defines an object that acts as a container for objects. 7 | /// 8 | public interface IElementHost 9 | { 10 | /// 11 | /// Gets a collection of the UI elements that are currently contained within this instance. 12 | /// 13 | IEnumerable Children { get; } 14 | 15 | /// 16 | /// Adds the specified object to this instance. 17 | /// 18 | /// The element to be added to this instance. 19 | void AddChild(IElement element); 20 | 21 | /// 22 | /// Removes the specified object from this instance. 23 | /// 24 | /// The element to be removed from this instance. 25 | void RemoveChild(IElement element); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Interfaces/IGrid.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Controls 2 | { 3 | /// 4 | /// Defines an object that acts as a grid made up of columns and rows for laying out various UI elements. 5 | /// 6 | public interface IGrid : IGridBase, IElement 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Elements/Interfaces/IGridBase.cs: -------------------------------------------------------------------------------- 1 | using iFactr.UI.Controls; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines a common base interface for all grid objects. 7 | /// 8 | /// At some point, the IGridView and IGridCell interfaces will no longer be necessary. 9 | /// Once they are gone, this base interface will not be necessary either. 10 | public interface IGridBase : IElementHost 11 | { 12 | /// 13 | /// Gets a collection of the columns that currently make up the grid. 14 | /// 15 | ColumnCollection Columns { get; } 16 | 17 | /// 18 | /// Gets or sets the amount of spacing between the edges of the grid and the children within it. 19 | /// 20 | Thickness Padding { get; set; } 21 | 22 | /// 23 | /// Gets a collection of the rows that currently make up the grid. 24 | /// 25 | RowCollection Rows { get; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/AlertButtons.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the available button combinations for an alert dialog. 5 | /// 6 | public enum AlertButtons : byte 7 | { 8 | /// 9 | /// The alert contains a single 'OK' button. 10 | /// 11 | OK = 0, 12 | /// 13 | /// The alert contains an 'OK' button and a 'Cancel' button. 14 | /// 15 | OKCancel = 1, 16 | /// 17 | /// The alert contains a 'Yes' button and a 'No' button. 18 | /// 19 | YesNo = 2, 20 | } 21 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/AlertResult.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the possible results of an alert dialog. 5 | /// 6 | public enum AlertResult : byte 7 | { 8 | /// 9 | /// The primary or 'OK' button was pressed. 10 | /// 11 | OK = 0, 12 | /// 13 | /// The secondary or 'Cancel' button was pressed. 14 | /// 15 | Cancel = 1, 16 | /// 17 | /// The primary or 'Yes' button was pressed. 18 | /// 19 | Yes = 2, 20 | /// 21 | /// The secondary or 'No' button was pressed. 22 | /// 23 | No = 3, 24 | } 25 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/BindingMode.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the direction in which values are passed for a object. 5 | /// 6 | public enum BindingMode : byte 7 | { 8 | /// 9 | /// The value of the target property is updated when the value of the source property is changed, 10 | /// and the value of the source property is updated when the value of the target property is changed. 11 | /// 12 | TwoWay, 13 | /// 14 | /// The value of the target property is updated when the value of the source property is changed. 15 | /// This is the default. 16 | /// 17 | OneWayToTarget, 18 | /// 19 | /// The value of the source property is updated when the value of the target property is changed. 20 | /// 21 | OneWayToSource, 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/ColumnMode.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the method in which an instance should lay out its contents. 5 | /// 6 | public enum ColumnMode : byte 7 | { 8 | /// 9 | /// The view should place everything within a single column. 10 | /// 11 | OneColumn = 0, 12 | /// 13 | /// The view should arrange its contents within two columns. Sections will alternate between each column. 14 | /// Not all platforms support this. 15 | /// 16 | TwoColumns = 1 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/ContentStretch.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how content is stretched to fit the space that is allotted for it. 5 | /// 6 | public enum ContentStretch : byte 7 | { 8 | /// 9 | /// The content is not stretched. 10 | /// 11 | None = 0, 12 | /// 13 | /// The content resizes itself to match the dimensions of the space. Aspect ratio is not preserved. 14 | /// 15 | Fill = 1, 16 | /// 17 | /// The content stretches itself to fill as much of the space as possible without spilling over. 18 | /// Aspect ratio is preserved. 19 | /// 20 | Uniform = 2, 21 | /// 22 | /// The content stretches itself to fill the entire space while preserving aspect ratio. 23 | /// Any portion of the content that spills over will be clipped. 24 | /// 25 | UniformToFill = 3 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/HorizontalAlignment.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how an element is horizontally aligned within the space that is allotted for it. 5 | /// 6 | public enum HorizontalAlignment : byte 7 | { 8 | /// 9 | /// The element is aligned to the left edge of the space. 10 | /// 11 | Left = 0, 12 | /// 13 | /// The element is centered within the space. 14 | /// 15 | Center = 1, 16 | /// 17 | /// The element is aligned to the right edge of the space. 18 | /// 19 | Right = 2, 20 | /// 21 | /// The element is stretched to fill the space. 22 | /// 23 | Stretch = 3 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/ImageCreationOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Describes the available options that can be applied during image creation. 7 | /// 8 | [Flags] 9 | public enum ImageCreationOptions : byte 10 | { 11 | /// 12 | /// No options are specified. This is the default value. 13 | /// 14 | None = 0, 15 | /// 16 | /// The image should not be cached. 17 | /// 18 | IgnoreCache = 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/KeyboardReturnType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Describes how to present the 'Return' key of a soft keyboard when a text entry control has focus. 7 | /// 8 | public enum KeyboardReturnType : byte 9 | { 10 | /// 11 | /// The Return key should be displayed as its default value, typically a 'Return' or 'Enter' button. 12 | /// 13 | Default = 0, 14 | /// 15 | /// The Return key should be displayed as a 'Next' button. 16 | /// If this option is not available on the target platform, will be used instead. 17 | /// 18 | Next = 1, 19 | /// 20 | /// The Return key should be displayed as a 'Done' button. 21 | /// If this option is not available on the target platform, will be used instead. 22 | /// 23 | Done = 2, 24 | /// 25 | /// The Return key should be displayed as a 'Go' button. 26 | /// If this option is not available on the target platform, will be used instead. 27 | /// 28 | Go = 3, 29 | /// 30 | /// The Return key should be displayed as a 'Search' button. 31 | /// If this option is not available on the target platform, will be used instead. 32 | /// 33 | Search = 4 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/KeyboardType.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the type of soft keyboard to display when a text entry control has focus. 5 | /// 6 | public enum KeyboardType : byte 7 | { 8 | /// 9 | /// The default keyboard containing letters and numbers. 10 | /// 11 | AlphaNumeric, 12 | /// 13 | /// A PIN-entry keyboard. 14 | /// 15 | PIN, 16 | /// 17 | /// A keyboard with numbers and symbols. 18 | /// 19 | Symbolic, 20 | /// 21 | /// A keyboard for entering URLs and email addresses. 22 | /// 23 | Email, 24 | } 25 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/LayoutUnitType.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the kind of value that a column or row is being sized with. 5 | /// 6 | public enum LayoutUnitType : byte 7 | { 8 | /// 9 | /// The column or row is automatically sized to fit its contents. The value is ignored. 10 | /// 11 | Auto = 0, 12 | /// 13 | /// The value represents units in the platform's coordinate system (pixels, points, etc). 14 | /// This unit type should be avoided whenever possible to ensure a consistent experience across all platforms. 15 | /// 16 | Absolute = 1, 17 | /// 18 | /// The value represents a weighted proportion of the available space after all other columns or rows have been sized. 19 | /// 20 | Star = 2 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/ListViewStyle.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the style in which an instance should be rendered. 5 | /// 6 | public enum ListViewStyle : byte 7 | { 8 | /// 9 | /// The view should be rendered in the default style for each platform. 10 | /// 11 | Default = 0, 12 | /// 13 | /// The view should render its sections as groups. Not all platforms support this. 14 | /// 15 | Grouped = 1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/PopoverPresentationStyle.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how a view should be presented when displayed in a popover pane. 5 | /// 6 | public enum PopoverPresentationStyle : byte 7 | { 8 | /// 9 | /// The view is presented in either a full-screen pane or a smaller modal window, depending on the platform. 10 | /// 11 | Normal = 0, 12 | /// 13 | /// The view is presented in a full-screen pane. 14 | /// 15 | FullScreen = 1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/PreferredOrientation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Describes the orientation preference for a view. Platforms that support this 7 | /// will lock the view in the specified orientation, preventing it from rotating. 8 | /// 9 | [Flags] 10 | public enum PreferredOrientation : byte 11 | { 12 | /// 13 | /// The view should be kept in portrait orientation. 14 | /// 15 | Portrait = 1, 16 | /// 17 | /// The view should be kept in landscape orientation. 18 | /// 19 | Landscape = 2, 20 | /// 21 | /// The view can rotate to either portrait or landscape orientation. 22 | /// 23 | PortraitOrLandscape = 3 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/SelectionStyle.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes the visual elements to use to indicate when a cell is selectable or has been selected. 5 | /// 6 | public enum SelectionStyle : byte 7 | { 8 | /// 9 | /// No visual indicators of any kind will be used. 10 | /// 11 | None = 0, 12 | /// 13 | /// For platforms that support it, the cell will show a visual element to indicate 14 | /// that it is selectable. The cell will not be highlighted when it is selected. 15 | /// 16 | IndicatorOnly = 1, 17 | /// 18 | /// For platforms that support it, the cell will be highlighted when it is selected. 19 | /// No visual indicators will be rendered to convey that the cell is selectable. 20 | /// 21 | HighlightOnly = 2, 22 | /// 23 | /// For platforms that support it, the cell will show a visual element to 24 | /// indicate that it is selectable and will be highlighted when it is selected. 25 | /// 26 | Default = 3, 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/TextAlignment.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how text is aligned within the element that it belongs to. 5 | /// 6 | public enum TextAlignment : byte 7 | { 8 | /// 9 | /// Text is aligned to the left edge of the element. 10 | /// 11 | Left, 12 | /// 13 | /// Text is centered within the element. 14 | /// 15 | Center, 16 | /// 17 | /// Text is aligned to the right edge of the element. 18 | /// 19 | Right, 20 | /// 21 | /// Text is justified within the element so that the lines in a paragraph are evenly aligned. 22 | /// 23 | Justified, 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/TextCompletion.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Describes automatic completion behavior for text that is entered into a text entry control. 7 | /// 8 | [Flags] 9 | public enum TextCompletion : byte 10 | { 11 | /// 12 | /// The text should not be handled in any way. 13 | /// 14 | Disabled = 0, 15 | /// 16 | /// Word suggestions should be offered while entering text. Not all platforms support this. 17 | /// 18 | OfferSuggestions = 1, 19 | /// 20 | /// Letters should be automatically capitalized when appropriate. Not all platforms support this. 21 | /// 22 | AutoCapitalize = 2, 23 | } 24 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/VerticalAlignment.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how an element is vertically aligned within the space that is allotted for it. 5 | /// 6 | public enum VerticalAlignment : byte 7 | { 8 | /// 9 | /// The element is aligned to the top edge of the space. 10 | /// 11 | Top = 0, 12 | /// 13 | /// The element is centered within the space. 14 | /// 15 | Center = 1, 16 | /// 17 | /// The element is aligned to the bottom edge of the space. 18 | /// 19 | Bottom = 2, 20 | /// 21 | /// The element is stretched to fill the space. 22 | /// 23 | Stretch = 3 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Enums/Visibility.cs: -------------------------------------------------------------------------------- 1 | using iFactr.UI.Controls; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines the visible state of an instance. 7 | /// 8 | public enum Visibility : byte 9 | { 10 | /// 11 | /// The element is visible. 12 | /// 13 | Visible = 0, 14 | /// 15 | /// The element is not visible, but it will still reserve space during layout. 16 | /// 17 | Hidden = 1, 18 | /// 19 | /// The element is not visible, and it does not reserve space during layout. 20 | /// 21 | Collapsed = 2, 22 | } 23 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Events/AlertEvents.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Represents the method that will handle the event. 7 | /// 8 | public delegate void AlertResultEventHandler(object sender, AlertResultEventArgs args); 9 | 10 | /// 11 | /// Provides data for the event. 12 | /// 13 | public class AlertResultEventArgs : EventArgs 14 | { 15 | /// 16 | /// Gets the result of the alert dialog. 17 | /// 18 | public AlertResult Result { get; private set; } 19 | 20 | /// 21 | /// Initializes a new instance of the class. 22 | /// 23 | /// The result of the alert dialog. 24 | public AlertResultEventArgs(AlertResult result) 25 | { 26 | Result = result; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Events/HandledEvents.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Provides data for events that can be used to intercept system behavior. 7 | /// 8 | public class EventHandledEventArgs : EventArgs 9 | { 10 | /// 11 | /// Gets or sets whether the event should be considered handled. A value of true means that the event 12 | /// has been handled and that the system should not proceed with any default behavior associated with the event. 13 | /// 14 | public bool IsHandled { get; set; } 15 | 16 | /// 17 | /// Initializes a new instance of the class. 18 | /// 19 | public EventHandledEventArgs() 20 | { 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Events/LoadEvents.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Provides data for the event. 7 | /// 8 | public class LoadFinishedEventArgs : EventArgs 9 | { 10 | /// 11 | /// Gets the URL that was navigated to. 12 | /// 13 | public string Url { get; private set; } 14 | 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | /// The URL that was navigated to. 19 | public LoadFinishedEventArgs(string url) 20 | { 21 | Url = url; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Events/SaveEvents.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Represents the method that will handle the event. 7 | /// 8 | /// The source of the event. 9 | /// The event data. 10 | public delegate void SaveEventHandler(object sender, SaveEventArgs args); 11 | 12 | /// 13 | /// Provides data for the event. 14 | /// 15 | public class SaveEventArgs : EventArgs 16 | { 17 | /// 18 | /// Gets the path of the file that was saved. 19 | /// 20 | public string FilePath { get; private set; } 21 | 22 | /// 23 | /// Initializes a new instance of the class. 24 | /// 25 | /// The path of the file that was saved. 26 | public SaveEventArgs(string filePath) 27 | { 28 | FilePath = filePath; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Events/SearchEvents.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Represents the method that will handle the event. 7 | /// 8 | /// The source of the event. 9 | /// The event data. 10 | public delegate void SearchEventHandler(object sender, SearchEventArgs args); 11 | 12 | /// 13 | /// Provides data for the event. 14 | /// 15 | public class SearchEventArgs : EventArgs 16 | { 17 | /// 18 | /// Gets the text inside of the search box that fired the event. 19 | /// 20 | public string SearchText { get; private set; } 21 | 22 | /// 23 | /// Initializes a new instance of the class. 24 | /// 25 | /// The text inside of the search box that fired the event. 26 | public SearchEventArgs(string searchText) 27 | { 28 | SearchText = searchText; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Extensions/ControlExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Controls 2 | { 3 | /// 4 | /// Provides methods for objects. 5 | /// 6 | public static class ControlExtensions 7 | { 8 | /// 9 | /// Returns a value indicating whether the control should be included when gathering submission values. 10 | /// 11 | public static bool ShouldSubmit(this IControl control) 12 | { 13 | return control != null && !string.IsNullOrEmpty(control.SubmitKey); 14 | } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/IPairable.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Defines an abstract or native object that can be paired with a native or abstract counterpart. 5 | /// 6 | public interface IPairable 7 | { 8 | /// 9 | /// Gets the abstract or native object that is paired with this instance. 10 | /// This property is used internally by the framework and user-defined controls, and it should not be used in application logic. 11 | /// 12 | IPairable Pair { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/ITimer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines a timer able to run across multiple platforms. 7 | /// 8 | public interface ITimer : IDisposable 9 | { 10 | /// 11 | /// Gets or sets a value indicating whether the timer is running. 12 | /// 13 | bool IsEnabled { get; set; } 14 | 15 | /// 16 | /// Gets or sets the amount of time, in milliseconds, before the event is fired. 17 | /// 18 | double Interval { get; set; } 19 | 20 | /// 21 | /// Occurs when the amount of time specified by the property has passed. 22 | /// 23 | event EventHandler Elapsed; 24 | 25 | /// 26 | /// Starts the timer. 27 | /// 28 | void Start(); 29 | 30 | /// 31 | /// Stops the timer. 32 | /// 33 | void Stop(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/IValueConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace iFactr.UI 7 | { 8 | /// 9 | /// Defines an object that converts a value from one type to another. 10 | /// 11 | public interface IValueConverter 12 | { 13 | /// 14 | /// Converts the specified value to the specified type and returns the result. 15 | /// 16 | /// The value to be converted. 17 | /// The type that the value is expected to be. 18 | /// An optional parameter to assist with value conversion. 19 | /// The converted value. 20 | object Convert(object value, Type targetType, object parameter); 21 | 22 | /// 23 | /// Converts the specified value to the specified type and returns the result. 24 | /// 25 | /// The value to be converted. 26 | /// The type that the value is expected to be. 27 | /// An optional parameter to assist with value conversion. 28 | /// The converted value. 29 | object ConvertBack(object value, Type targetType, object parameter); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Instructions/ILayoutInstruction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace iFactr.UI.Instructions 7 | { 8 | /// 9 | /// Defines an element that may have special layout requirements depending on the target platform. 10 | /// 11 | public interface ILayoutInstruction 12 | { 13 | /// 14 | /// Performs a platform-agnostic layout. 15 | /// This is used when the target platform does not have any special layout instructions for the element. 16 | /// 17 | void Layout(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Instructions/Instructor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace iFactr.UI.Instructions 7 | { 8 | /// 9 | /// Represents a tool for giving platform-specific instructions to cross-platform objects. 10 | /// This class is abstract. 11 | /// 12 | public abstract class Instructor 13 | { 14 | /// 15 | /// Performs layout logic for the specified that is determined by the target platform. 16 | /// 17 | /// The instance to lay out. 18 | public abstract void Layout(ILayoutInstruction element); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Instructions/UniveralInstructor.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI.Instructions 2 | { 3 | /// 4 | /// Represents an instructor that provides platform-agnostic instructions to various objects. 5 | /// 6 | public class UniversalInstructor : Instructor 7 | { 8 | /// 9 | /// Performs layout logic for the specified . 10 | /// 11 | /// The instance to lay out. 12 | public sealed override void Layout(ILayoutInstruction element) 13 | { 14 | if (element != null) 15 | { 16 | OnLayout(element); 17 | } 18 | } 19 | 20 | /// 21 | /// Called when the specified needs to be laid out. 22 | /// 23 | /// The instance to be laid out. 24 | protected virtual void OnLayout(ILayoutInstruction element) 25 | { 26 | element.Layout(); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Menus and Toolbars/Interfaces/IMenuButton.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines an pressable button within an object. 7 | /// 8 | public interface IMenuButton : IPairable, IEquatable 9 | { 10 | /// 11 | /// Gets the title of the button. 12 | /// 13 | string Title { get; } 14 | 15 | /// 16 | /// Gets or sets the file path of the image to use with the button. 17 | /// 18 | string ImagePath { get; set; } 19 | 20 | /// 21 | /// Gets or sets the link to navigate to when the button is selected. 22 | /// The navigation only occurs if there is no handler for the event. 23 | /// 24 | Link NavigationLink { get; set; } 25 | 26 | /// 27 | /// Occurs when the user clicks or taps on the button. 28 | /// 29 | [NativeOnly("http://support.ifactr.com/kb/webkit-compatibility")] 30 | event EventHandler Clicked; 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Menus and Toolbars/Interfaces/IToolbar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace iFactr.UI 5 | { 6 | /// 7 | /// Defines a toolbar containing items that provide support functions for an . 8 | /// 9 | public interface IToolbar : IPairable, IEquatable 10 | { 11 | /// 12 | /// Gets or sets the background color of the toolbar on platforms that support it. 13 | /// 14 | Color BackgroundColor { get; set; } 15 | 16 | /// 17 | /// Gets or sets the foreground color of the toolbar on platforms that support it. 18 | /// Any toolbar items that do not specify their own foreground color will use this value. 19 | /// 20 | Color ForegroundColor { get; set; } 21 | 22 | /// 23 | /// Gets or sets a collection of toolbar items that are considered primary commands. 24 | /// These are commonly aligned to the right of the toolbar, but platform behavior may vary. 25 | /// 26 | IEnumerable PrimaryItems { get; set; } 27 | 28 | /// 29 | /// Gets or sets a collection of toolbar items that are considered secondary commands. 30 | /// These are commonly aligned to the left of the toolbar, but platform behavior may vary. 31 | /// 32 | IEnumerable SecondaryItems { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Menus and Toolbars/Interfaces/IToolbarButton.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines a clickable button in an object. 7 | /// 8 | public interface IToolbarButton : IToolbarItem, IEquatable 9 | { 10 | /// 11 | /// Gets or sets the file path to an image to display as part of the button. 12 | /// 13 | string ImagePath { get; set; } 14 | 15 | /// 16 | /// Gets or sets the link to navigate to when the user clicks or taps the button. 17 | /// The navigation only occurs if there is no handler for the event. 18 | /// 19 | Link NavigationLink { get; set; } 20 | 21 | /// 22 | /// Gets or sets the title of the button. 23 | /// 24 | string Title { get; set; } 25 | 26 | /// 27 | /// Occurs when the user clicks or taps on the button. 28 | /// 29 | [NativeOnly("http://support.ifactr.com/kb/webkit-compatibility")] 30 | event EventHandler Clicked; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Menus and Toolbars/Interfaces/IToolbarItem.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Defines a base interface for the and interfaces. 5 | /// 6 | public interface IToolbarItem : IPairable 7 | { 8 | /// 9 | /// Gets or sets the foreground color of the item. 10 | /// 11 | Color ForegroundColor { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Menus and Toolbars/Interfaces/IToolbarSeparator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI 4 | { 5 | /// 6 | /// Defines an item in an object that serves as a separator between other items. 7 | /// 8 | public interface IToolbarSeparator : IToolbarItem, IEquatable 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/GroupAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Represents a collection of members that occupy the same cell. When applied to a type, all members of that type will be grouped together. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Property, AllowMultiple = false)] 9 | public sealed class GroupAttribute : OptInAttribute 10 | { 11 | internal string Id { get; private set; } 12 | 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | /// A string to identify the group. Members in groups with the same identifier with be placed together. 17 | public GroupAttribute(string id) 18 | { 19 | if (id == null) 20 | { 21 | throw new ArgumentNullException("id"); 22 | } 23 | 24 | Id = id; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/ImageAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Represents an image that should accompany the user control that is representing the member on screen. 7 | /// 8 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] 9 | public sealed class ImageAttribute : OptInAttribute 10 | { 11 | internal string FilePath { get; private set; } 12 | 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | /// The full path to the image file that should be used. 17 | public ImageAttribute(string filePath) 18 | { 19 | FilePath = filePath; 20 | } 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/OptInAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Represents the base class for attributes that ensure a member is included when a type's participation is set to . 7 | /// 8 | public abstract class OptInAttribute : Attribute 9 | { 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/OrderAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Describes the order in which the member should be presented on screen relative to other members of its declaring type. 7 | /// 8 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] 9 | public sealed class OrderAttribute : OptInAttribute 10 | { 11 | internal int Index { get; private set; } 12 | 13 | /// 14 | /// Initializes a new instance of the class. 15 | /// 16 | /// The position of the member on screen. 17 | public OrderAttribute(int index) 18 | { 19 | Index = index; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/SectionAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Represents the beginning of a new group of cells. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Property, AllowMultiple = false)] 9 | public sealed class SectionAttribute : Attribute 10 | { 11 | /// 12 | /// Gets or sets the color of the footer for the section. 13 | /// 14 | public string FooterColor { get; set; } 15 | 16 | /// 17 | /// Gets or sets the text to display underneath the section. 18 | /// 19 | public string FooterText { get; set; } 20 | 21 | /// 22 | /// Gets or sets the color of the footer text for the section. 23 | /// 24 | public string FooterTextColor { get; set; } 25 | 26 | /// 27 | /// Gets or sets the color of the header for the section. 28 | /// 29 | public string HeaderColor { get; set; } 30 | 31 | /// 32 | /// Gets or sets the text to display above the section. 33 | /// 34 | public string HeaderText { get; set; } 35 | 36 | /// 37 | /// Gets or sets the color of the header text for the section. 38 | /// 39 | public string HeaderTextColor { get; set; } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Reflection/SkipAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.UI.Reflection 4 | { 5 | /// 6 | /// Represents a type or member that should be excluded during construction of a reflective UI. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Property, AllowMultiple = false)] 9 | public sealed class SkipAttribute : Attribute 10 | { 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Search/SearchFilterResult.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// Describes how a value is filtered by a search query. 5 | /// 6 | public enum SearchFilterResult 7 | { 8 | /// 9 | /// The value did not match the query. 10 | /// 11 | ImplicitExclusion, 12 | /// 13 | /// The value matches an exclude query. 14 | /// 15 | ExplicitExclusion, 16 | /// 17 | /// The value implicitly matches the query. 18 | /// 19 | ImplicitInclusion, 20 | /// 21 | /// The value matches the query. 22 | /// 23 | ExplicitInclusion, 24 | } 25 | } -------------------------------------------------------------------------------- /iFactr.UI/MonoView/Views/Interfaces/ITabView.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MonoCross.Navigation; 3 | 4 | namespace iFactr.UI 5 | { 6 | /// 7 | /// Defines a native view that contains selectable tab items for separating an application into categories. 8 | /// 9 | public interface ITabView : IView 10 | { 11 | /// 12 | /// Gets or sets the index of the currently selected item. 13 | /// 14 | int SelectedIndex { get; set; } 15 | 16 | /// 17 | /// Gets or sets the color with which to overlay the selected item. 18 | /// 19 | Color SelectionColor { get; set; } 20 | 21 | /// 22 | /// Gets or sets a collection of s to populate the view with when it is displayed in a normal context. 23 | /// 24 | IEnumerable TabItems { get; set; } 25 | } 26 | 27 | /// 28 | /// Defines a native view that contains selectable tab items for separating an application into categories. 29 | /// 30 | /// The type of the Model. 31 | public interface ITabView : ITabView, IMXView { } 32 | } -------------------------------------------------------------------------------- /iFactr.UI/NavigationMap.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using iFactr.Core.Layers; 3 | using iFactr.Core.Targets; 4 | using MonoCross.Navigation; 5 | 6 | namespace iFactr.Core 7 | { 8 | /// 9 | /// A implementation that provides a browser controller. 10 | /// 11 | public class NavigationMap : NavigationList 12 | { 13 | /// 14 | /// Returns a from the NavigationMap that matches the specified URL. 15 | /// 16 | /// A representing the URL to match. 17 | /// A that matches the URL. 18 | public override MXNavigation MatchUrl(string url) 19 | { 20 | // If there is no result, assume the URL is external and create a new Browser Layer 21 | return base.MatchUrl(url) ?? (url.Contains(":") ? new MXNavigation(url, new Browser(url), null) : null); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /iFactr.UI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("iFactr.UI")] 8 | [assembly: AssemblyDescription("The iFactr UI API library")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Zebra Technologies Corporation")] 11 | [assembly: AssemblyProduct("iFactr.UI")] 12 | [assembly: AssemblyTrademark("")] 13 | [assembly: AssemblyCulture("")] 14 | 15 | 16 | // Version information for an assembly consists of the following four values: 17 | // 18 | // Major Version 19 | // Minor Version 20 | // Build Number 21 | // Revision 22 | // 23 | [assembly: AssemblyCopyright("Copyright © " + 24 | "2018")] 25 | [assembly: AssemblyVersion("4.1.0.42")] 26 | [assembly: AssemblyInformationalVersion("4.1.0.42-master.WorkingTree")] -------------------------------------------------------------------------------- /iFactr.UI/Stack/IMXViewExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using iFactr.UI; 3 | using MonoCross.Navigation; 4 | 5 | namespace iFactr.Core 6 | { 7 | /// 8 | /// Contains extension methods for IMXView. 9 | /// 10 | public static class IMXViewExtensions 11 | { 12 | /// 13 | /// Determines whether the given view is being displayed. 14 | /// 15 | /// The view to check for displaying. 16 | /// true if the view is currently presented; otherwise false. 17 | public static bool IsDisplaying(this IMXView view) 18 | { 19 | var stackFound = false; 20 | for (var pane = Pane.Popover; pane > Pane.Tabs; pane--) 21 | { 22 | var stack = PaneManager.Instance.FromNavContext(pane); 23 | if (stack != null) 24 | { 25 | stackFound = stack.Views.Any(); 26 | if (Equals(stack.CurrentView, view)) 27 | { 28 | return true; 29 | } 30 | } 31 | else if (stackFound) 32 | { 33 | return false; 34 | } 35 | } 36 | return false; 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /iFactr.UI/Targets/Config/ConfigDictionary.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | 3 | namespace iFactr.Core.Targets.Config 4 | { 5 | /// 6 | /// Represents a that contains an application's configuration settings. 7 | /// 8 | public class ConfigDictionary : SerializableDictionary, IConfig 9 | { 10 | /// 11 | /// Loads the application's configuration settings. 12 | /// 13 | public void Load() 14 | { 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /iFactr.UI/Targets/Config/IConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections; 3 | 4 | namespace iFactr.Core.Targets.Config 5 | { 6 | /// 7 | /// Defines an application's configuration settings. 8 | /// 9 | public interface IConfig : IDictionary, ICollection>, IEnumerable>, ICollection, IEnumerable /*, ISerializable, IDeserializationCallback */ 10 | { 11 | /// 12 | /// Loads the application's configuration settings. 13 | /// 14 | void Load(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /iFactr.UI/Targets/Settings/ISettings.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections; 3 | 4 | namespace iFactr.Core.Targets.Settings 5 | { 6 | /// 7 | /// Defines an application's settings. 8 | /// 9 | public interface ISettings : IDictionary, ICollection>, IEnumerable>, ICollection, IEnumerable /*, ISerializable, IDeserializationCallback */ 10 | { 11 | /// 12 | /// Loads an application's settings. 13 | /// 14 | void Load(); 15 | 16 | /// 17 | /// Saves an application's settings to disk. 18 | /// 19 | void Store(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /iFactr.UI/Targets/Settings/SettingsDictionary.cs: -------------------------------------------------------------------------------- 1 | using MonoCross.Navigation; 2 | 3 | namespace iFactr.Core.Targets.Settings 4 | { 5 | /// 6 | /// Represents an application's settings. 7 | /// 8 | public class SettingsDictionary : SerializableDictionary, ISettings 9 | { 10 | /// 11 | /// Loads the application's settings. 12 | /// 13 | public virtual void Load() 14 | { 15 | // base implementation is to do nothing, override functionality in specific platform as needed. 16 | } 17 | 18 | /// 19 | /// Saves the application's settings to disk. 20 | /// 21 | public virtual void Store( ) 22 | { 23 | // do nothing.; override functionality in specific platform as needed. 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Enums/CompositeLayout.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core.Layers 2 | { 3 | /// 4 | /// The layout of a large form-factor composite layer. 5 | /// 6 | public enum CompositeLayout 7 | { 8 | /// 9 | /// The composite layer is to be displayed in a single column. 10 | /// 11 | OneColumn, 12 | /// 13 | /// The composite layer is to be displayed in two columns. 14 | /// 15 | TwoColumns, 16 | } 17 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Enums/LayerLayout.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core.Layers 2 | { 3 | /// 4 | /// Available layer layout options. 5 | /// 6 | public enum LayerLayout 7 | { 8 | /// 9 | /// The layer's content has rounded corners. Not all platforms support this. 10 | /// 11 | Rounded, 12 | /// 13 | /// The layer's content fills the screen from edge to edge. 14 | /// 15 | EdgetoEdge, 16 | } 17 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/AggregateFieldset.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core.Forms 2 | { 3 | /// 4 | /// Represents a column of fieldsets to be used in a table of s. 5 | /// The Header property of an refers to each column's header. 6 | /// 7 | public class AggregateFieldset : Fieldset 8 | { 9 | /// 10 | /// Gets or sets the text above the aggregated fieldsets. 11 | /// Specifiying this property on an marks it as the first fieldset in a new table. 12 | /// 13 | public string AggregateHeader { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/EmailField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Forms 4 | { 5 | /// 6 | /// Represents a text field for inputting email addresses. 7 | /// 8 | public class EmailField : TextField 9 | { 10 | /// 11 | /// Initializes a new instance of the class with no submission ID. 12 | /// 13 | public EmailField() { } 14 | 15 | /// 16 | /// Initializes a new instance of the class using the ID provided. 17 | /// 18 | /// A representing the ID value. 19 | public EmailField(string id) : base(id) { } 20 | 21 | /// 22 | /// Gets the virtual keyboard type to use for this instance. 23 | /// 24 | public override KeyboardType KeyboardType 25 | { 26 | get 27 | { 28 | return KeyboardType.Email; 29 | } 30 | } 31 | 32 | /// 33 | /// Creates a deep-copy clone of this instance. 34 | /// 35 | public new EmailField Clone() 36 | { 37 | return (EmailField)CloneOverride(); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/ImagePickerField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Forms 4 | { 5 | /// 6 | /// Represents a field for selecting and displaying images. 7 | /// 8 | public class ImagePickerField : Field 9 | { 10 | /// 11 | /// Gets or sets the URL of the image to display. 12 | /// 13 | /// The image URL as a value. 14 | public string ImageUrl 15 | { 16 | get { return Text; } 17 | set { Text = value; } 18 | } 19 | 20 | /// 21 | /// Initializes a new instance of the class with no submission ID. 22 | /// 23 | public ImagePickerField() { } 24 | 25 | /// 26 | /// Initializes a new instance of the class using the ID provided. 27 | /// 28 | /// A representing the ID. 29 | public ImagePickerField(string id) 30 | { 31 | ID = id; 32 | } 33 | 34 | /// 35 | /// Creates a deep-copy clone of this instance. 36 | /// 37 | public new ImagePickerField Clone() 38 | { 39 | return (ImagePickerField)CloneOverride(); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/KeyboardType.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core.Forms 2 | { 3 | /// 4 | /// The types of soft keyboards. 5 | /// 6 | public enum KeyboardType 7 | { 8 | /// 9 | /// Default alphanumeric keyboard. 10 | /// 11 | AlphaNumeric, 12 | /// 13 | /// A PIN-entry keyboard. 14 | /// 15 | PIN, 16 | /// 17 | /// A keyboard with numbers and symbols. 18 | /// 19 | Symbolic, 20 | /// 21 | /// A keyboard for entering URLs and email addresses. 22 | /// 23 | Email, 24 | } 25 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/LabelField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Forms 4 | { 5 | /// 6 | /// Represents a non-editable label. 7 | /// 8 | public class LabelField : Field 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | public LabelField() { } 14 | 15 | /// 16 | /// Initializes a new instance of the class using the ID provided. 17 | /// 18 | /// A representing the ID value. 19 | public LabelField(string id) 20 | { 21 | ID = id; 22 | } 23 | 24 | /// 25 | /// Creates a deep-copy clone of this instance. 26 | /// 27 | public new LabelField Clone() 28 | { 29 | return (LabelField)CloneOverride(); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Fields/NumericField.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Forms 4 | { 5 | /// 6 | /// Represents a field for accepting numerical text input. 7 | /// 8 | public class NumericField : TextField 9 | { 10 | /// 11 | /// Initializes a new instance of the class with no submission ID. 12 | /// 13 | public NumericField() 14 | { 15 | Expression = @"^[-\.\d]*$"; 16 | base.KeyboardType = KeyboardType.Symbolic; 17 | } 18 | 19 | /// 20 | /// Initializes a new instance of the class. 21 | /// 22 | /// A representing the ID. 23 | public NumericField(string id) 24 | : this() 25 | { 26 | ID = id; 27 | } 28 | 29 | /// 30 | /// Creates a deep-copy clone of this instance. 31 | /// 32 | public new NumericField Clone() 33 | { 34 | return (NumericField)CloneOverride(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Items/CollectionItems/ICustomItem.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.Core.Layers 2 | { 3 | /// 4 | /// Defines a custom or class. 5 | /// 6 | public interface ICustomItem { } 7 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Keys/Shortcuts.cs: -------------------------------------------------------------------------------- 1 | using iFactr.Core.Controls; 2 | using MonoCross.Navigation; 3 | 4 | namespace iFactr.Core.Layers 5 | { 6 | /// 7 | /// Represents a collection of keyboard shortcuts that initiate navigations when the appropriate keys are pressed. 8 | /// 9 | public class Shortcuts : SerializableDictionary 10 | { 11 | /// 12 | /// Adds a keystroke and a link to the collection of shortcuts. 13 | /// 14 | /// The keys to press to initiate the navigation. 15 | /// The link to navigate to when the keys are pressed. 16 | public void Add(Keystroke key, Link value) 17 | { 18 | Add(new Gesture(key), value); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Layers/Browser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Layers 4 | { 5 | /// 6 | /// Represents a layer for displaying local or web-based content. 7 | /// 8 | /// 9 | /// Browser layers are used to navigate to and display external content from within the application. 10 | /// 11 | public class Browser : iLayer 12 | { 13 | /// 14 | /// Gets or sets the URL to navigate to. 15 | /// 16 | /// The URL as a value. 17 | public string Url { get; set; } 18 | 19 | /// 20 | /// Initializes a new instance of the class using the navigation URL provided. 21 | /// 22 | public Browser() { } 23 | 24 | /// 25 | /// Initializes a new instance of the class using the navigation URL provided. 26 | /// 27 | /// A representing the URL to navigate to. 28 | public Browser(string url) 29 | { 30 | Url = url; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Layers/IDetailLayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace iFactr.Core.Layers 3 | { 4 | /// 5 | /// Defines a layer that is displayed in the detail pane of a large form-factor device. 6 | /// 7 | [Obsolete("Use the PreferredPane attribute instead.")] 8 | public interface IDetailLayer { } 9 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Layers/IMasterLayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Layers 4 | { 5 | /// 6 | /// Defines a layer that is displayed in the master pane of a large form-factor device. 7 | /// 8 | [Obsolete("Use the PreferredPane attribute instead.")] 9 | public interface IMasterLayer { } 10 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/Layers/IPopoverLayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace iFactr.Core.Layers 4 | { 5 | /// 6 | /// Defines a layer that is displayed in a modal popover window on a large form-factor device. 7 | /// 8 | [Obsolete("Use the PreferredPane attribute instead.")] 9 | public interface IPopoverLayer 10 | { 11 | /// 12 | /// Gets or sets whether to display the layer in a fullscreen modal window. 13 | /// 14 | bool IsFullscreen { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /iFactr.UI/Views/NavigationType.cs: -------------------------------------------------------------------------------- 1 | namespace iFactr.UI 2 | { 3 | /// 4 | /// The types of navigation. 5 | /// 6 | public enum NavigationType 7 | { 8 | /// 9 | /// The navigation occurred because the back button has been pressed. 10 | /// 11 | Back, 12 | /// 13 | /// The navigation occurred because an iApp navigation has been initiated. 14 | /// 15 | Forward, 16 | /// 17 | /// The navigation occurred because a tab has been selected. 18 | /// 19 | Tab, 20 | } 21 | } -------------------------------------------------------------------------------- /iFactr.UI/iFactr.UI.Debug.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Zebra Technologies Corporation 6 | Copyright © 2018 7 | 4.0.0.42 8 | 4.0.0.42 9 | The iFactr UI API library 10 | 4.0.0.42 11 | en 12 | iFactr.UI 13 | iFactr.UI 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | True 27 | True 28 | Strings.resx 29 | 30 | 31 | 32 | 33 | 34 | ResXFileCodeGenerator 35 | Strings.Designer.cs 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /iFactr.UI/iFactr.UI.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | iFactr.UI 5 | $version$ 6 | iFactr Cross-Platform Framework 7 | Zebra 8 | Zebra Technologies Corporation 9 | https://raw.githubusercontent.com/Zebra/iFactr-UI/master/LICENSE 10 | https://github.com/Zebra/iFactr-UI 11 | https://raw.githubusercontent.com/Zebra/iFactr-UI/master/iFactr.png 12 | false 13 | A cross-platform mobile framework using C# .NET and Mono to create shared-code UI on iOS, Android, Windows and Webkit. 14 | Cross-platform UI interfaces 15 | 4.0 Release for iFactr Open Source with MIT license. 16 | 2010-2017 Zebra Technologies Corp. 17 | MonoCross iFactr UI 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /iFactr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/iFactr-UI/53fad221ce57b411cbcba2b39d0a6c3c887dfd82/iFactr.png --------------------------------------------------------------------------------