Skip to content
Browse files

First commit to github.

  • Loading branch information...
0 parents commit e251dc24e78ba30f1abc57c38b73987040eed568 @escoz committed
Showing with 4,458 additions and 0 deletions.
  1. +15 −0 .gitignore
  2. +575 −0 QuickDialog.xcodeproj/project.pbxproj
  3. +7 −0 QuickDialog.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  4. +10 −0 README
  5. BIN other/quickdialog-logo.psd
  6. +7 −0 quickdialog.xcworkspace/contents.xcworkspacedata
  7. +27 −0 quickdialog/BadgeElement.h
  8. +37 −0 quickdialog/BadgeElement.m
  9. +22 −0 quickdialog/BadgeTableCell.h
  10. +55 −0 quickdialog/BadgeTableCell.m
  11. +30 −0 quickdialog/BooleanElement.h
  12. +77 −0 quickdialog/BooleanElement.m
  13. +20 −0 quickdialog/ButtonElement.h
  14. +44 −0 quickdialog/ButtonElement.m
  15. +24 −0 quickdialog/DateEntryTableViewCell.h
  16. +110 −0 quickdialog/DateEntryTableViewCell.m
  17. +27 −0 quickdialog/DateTimeElement.h
  18. +156 −0 quickdialog/DateTimeElement.m
  19. +31 −0 quickdialog/DateTimeInlineElement.h
  20. +54 −0 quickdialog/DateTimeInlineElement.m
  21. +22 −0 quickdialog/DecimalElement.h
  22. +53 −0 quickdialog/DecimalElement.m
  23. +19 −0 quickdialog/DecimalTableViewCell.h
  24. +80 −0 quickdialog/DecimalTableViewCell.m
  25. +44 −0 quickdialog/Element.h
  26. +59 −0 quickdialog/Element.m
  27. +30 −0 quickdialog/EntryElement.h
  28. +54 −0 quickdialog/EntryElement.m
  29. +35 −0 quickdialog/EntryTableViewCell.h
  30. +210 −0 quickdialog/EntryTableViewCell.m
  31. +24 −0 quickdialog/FloatElement.h
  32. +63 −0 quickdialog/FloatElement.m
  33. +26 −0 quickdialog/LabelElement.h
  34. +46 −0 quickdialog/LabelElement.m
  35. +18 −0 quickdialog/MapElement.h
  36. +30 −0 quickdialog/MapElement.m
  37. +24 −0 quickdialog/MapViewController.h
  38. +56 −0 quickdialog/MapViewController.m
  39. +24 −0 quickdialog/QuickAnnotation.h
  40. +24 −0 quickdialog/QuickAnnotation.m
  41. +14 −0 quickdialog/QuickDialogController+Loading.h
  42. +46 −0 quickdialog/QuickDialogController+Loading.m
  43. +37 −0 quickdialog/QuickDialogController.h
  44. +84 −0 quickdialog/QuickDialogController.m
  45. +24 −0 quickdialog/QuickDialogDataSource.h
  46. +68 −0 quickdialog/QuickDialogDataSource.m
  47. +11 −0 quickdialog/QuickDialogStyleProvider.h
  48. +26 −0 quickdialog/QuickDialogTableDelegate.h
  49. +88 −0 quickdialog/QuickDialogTableDelegate.m
  50. +42 −0 quickdialog/QuickDialogTableView.h
  51. +79 −0 quickdialog/QuickDialogTableView.m
  52. +24 −0 quickdialog/RadioElement.h
  53. +75 −0 quickdialog/RadioElement.m
  54. +25 −0 quickdialog/RadioItemElement.h
  55. +72 −0 quickdialog/RadioItemElement.m
  56. +29 −0 quickdialog/RadioSection.h
  57. +60 −0 quickdialog/RadioSection.m
  58. +34 −0 quickdialog/RootElement.h
  59. +60 −0 quickdialog/RootElement.m
  60. +46 −0 quickdialog/Section.h
  61. +52 −0 quickdialog/Section.m
  62. +23 −0 quickdialog/SortingSection.h
  63. +41 −0 quickdialog/SortingSection.m
  64. +29 −0 quickdialog/TextElement.h
  65. +57 −0 quickdialog/TextElement.m
  66. +20 −0 quickdialog/WebElement.h
  67. +34 −0 quickdialog/WebElement.m
  68. +20 −0 quickdialog/WebViewController.h
  69. +63 −0 quickdialog/WebViewController.m
  70. +10 −0 quickdialog/quickform-Prefix.pch
  71. +20 −0 sample/AboutController.h
  72. +25 −0 sample/AboutController.m
  73. +15 −0 sample/DummyDataBuilder.h
  74. +410 −0 sample/DummyDataBuilder.m
  75. +21 −0 sample/LoginController.h
  76. +119 −0 sample/LoginController.m
  77. +21 −0 sample/LoginInfo.h
  78. +16 −0 sample/LoginInfo.m
  79. +19 −0 sample/QuickDialogExampleAppDelegate.h
  80. +64 −0 sample/QuickDialogExampleAppDelegate.m
  81. +13 −0 sample/QuickDialogExampleViewController.h
  82. BIN sample/Resources/footer.png
  83. BIN sample/Resources/footer@2x.png
  84. BIN sample/Resources/iPhone.png
  85. BIN sample/Resources/imgOff.png
  86. BIN sample/Resources/imgOn.png
  87. BIN sample/Resources/intel.png
  88. BIN sample/Resources/keyboard.png
  89. BIN sample/Resources/logo.png
  90. BIN sample/Resources/logo@2x.png
  91. BIN sample/Resources/quickdialog.png
  92. BIN sample/Resources/quickdialog@2x.png
  93. +2 −0 sample/en.lproj/InfoPlist.strings
  94. +16 −0 sample/main.m
  95. +43 −0 sample/quickdialogexample-Info.plist
  96. +28 −0 sample/quickdialogexample-Prefix.pch
  97. +64 −0 sample/quickdialogexampleViewController.m
15 .gitignore
@@ -0,0 +1,15 @@
+.DS_Store
+*.swp
+*~.nib
+
+build/
+
+*.pbxuser
+*.perspective
+*.perspectivev3
+
+*.mode1v3
+*.mode2v3
+
+xcuserdata
+.idea/*
575 QuickDialog.xcodeproj/project.pbxproj
@@ -0,0 +1,575 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D80B0E3813E052DF00FA85CA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D80B0E3713E052DF00FA85CA /* UIKit.framework */; };
+ D80B0E3A13E052DF00FA85CA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D80B0E3913E052DF00FA85CA /* Foundation.framework */; };
+ D80B0E3C13E052DF00FA85CA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D80B0E3B13E052DF00FA85CA /* CoreGraphics.framework */; };
+ D811F8C013EC905B00E3922B /* BadgeElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88513EC905B00E3922B /* BadgeElement.m */; };
+ D811F8C113EC905B00E3922B /* BadgeTableCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88713EC905B00E3922B /* BadgeTableCell.m */; };
+ D811F8C213EC905B00E3922B /* BooleanElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88913EC905B00E3922B /* BooleanElement.m */; };
+ D811F8C313EC905B00E3922B /* ButtonElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88B13EC905B00E3922B /* ButtonElement.m */; };
+ D811F8C413EC905B00E3922B /* DateEntryTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88D13EC905B00E3922B /* DateEntryTableViewCell.m */; };
+ D811F8C513EC905B00E3922B /* DateTimeElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F88F13EC905B00E3922B /* DateTimeElement.m */; };
+ D811F8C613EC905B00E3922B /* DateTimeInlineElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89113EC905B00E3922B /* DateTimeInlineElement.m */; };
+ D811F8C713EC905B00E3922B /* Element.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89313EC905B00E3922B /* Element.m */; };
+ D811F8C813EC905B00E3922B /* EntryElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89513EC905B00E3922B /* EntryElement.m */; };
+ D811F8C913EC905B00E3922B /* EntryTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89713EC905B00E3922B /* EntryTableViewCell.m */; };
+ D811F8CA13EC905B00E3922B /* FloatElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89913EC905B00E3922B /* FloatElement.m */; };
+ D811F8CB13EC905B00E3922B /* LabelElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89B13EC905B00E3922B /* LabelElement.m */; };
+ D811F8CC13EC905B00E3922B /* MapElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89D13EC905B00E3922B /* MapElement.m */; };
+ D811F8CD13EC905B00E3922B /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F89F13EC905B00E3922B /* MapViewController.m */; };
+ D811F8CE13EC905B00E3922B /* QuickAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8A113EC905B00E3922B /* QuickAnnotation.m */; };
+ D811F8CF13EC905B00E3922B /* QuickDialogController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8A313EC905B00E3922B /* QuickDialogController.m */; };
+ D811F8D013EC905B00E3922B /* QuickDialogController+Loading.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8A513EC905B00E3922B /* QuickDialogController+Loading.m */; };
+ D811F8D113EC905B00E3922B /* QuickDialogDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8A713EC905B00E3922B /* QuickDialogDataSource.m */; };
+ D811F8D213EC905B00E3922B /* QuickDialogTableDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8AA13EC905B00E3922B /* QuickDialogTableDelegate.m */; };
+ D811F8D313EC905B00E3922B /* QuickDialogTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8AC13EC905B00E3922B /* QuickDialogTableView.m */; };
+ D811F8D413EC905B00E3922B /* RadioElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8AF13EC905B00E3922B /* RadioElement.m */; };
+ D811F8D513EC905B00E3922B /* RadioItemElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8B113EC905B00E3922B /* RadioItemElement.m */; };
+ D811F8D613EC905B00E3922B /* RadioSection.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8B313EC905B00E3922B /* RadioSection.m */; };
+ D811F8D713EC905B00E3922B /* RootElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8B513EC905B00E3922B /* RootElement.m */; };
+ D811F8D813EC905B00E3922B /* Section.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8B713EC905B00E3922B /* Section.m */; };
+ D811F8D913EC905B00E3922B /* SortingSection.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8B913EC905B00E3922B /* SortingSection.m */; };
+ D811F8DA13EC905B00E3922B /* TextElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8BB13EC905B00E3922B /* TextElement.m */; };
+ D811F8DB13EC905B00E3922B /* WebElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8BD13EC905B00E3922B /* WebElement.m */; };
+ D811F8DC13EC905B00E3922B /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8BF13EC905B00E3922B /* WebViewController.m */; };
+ D811F8FB13EC907200E3922B /* AboutController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8DE13EC907200E3922B /* AboutController.m */; };
+ D811F8FC13EC907200E3922B /* DummyDataBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8E013EC907200E3922B /* DummyDataBuilder.m */; };
+ D811F8FE13EC907200E3922B /* LoginController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8E513EC907200E3922B /* LoginController.m */; };
+ D811F8FF13EC907200E3922B /* LoginInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8E713EC907200E3922B /* LoginInfo.m */; };
+ D811F90013EC907200E3922B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8E813EC907200E3922B /* main.m */; };
+ D811F90213EC907200E3922B /* QuickDialogExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8EC13EC907200E3922B /* QuickDialogExampleAppDelegate.m */; };
+ D811F90313EC907200E3922B /* quickdialogexampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D811F8EE13EC907200E3922B /* quickdialogexampleViewController.m */; };
+ D811F90413EC907200E3922B /* footer.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F013EC907200E3922B /* footer.png */; };
+ D811F90513EC907200E3922B /* footer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F113EC907200E3922B /* footer@2x.png */; };
+ D811F90613EC907200E3922B /* imgOff.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F213EC907200E3922B /* imgOff.png */; };
+ D811F90713EC907200E3922B /* imgOn.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F313EC907200E3922B /* imgOn.png */; };
+ D811F90813EC907200E3922B /* intel.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F413EC907200E3922B /* intel.png */; };
+ D811F90913EC907200E3922B /* iPhone.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F513EC907200E3922B /* iPhone.png */; };
+ D811F90A13EC907200E3922B /* keyboard.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F613EC907200E3922B /* keyboard.png */; };
+ D811F90B13EC907200E3922B /* logo.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F713EC907200E3922B /* logo.png */; };
+ D811F90C13EC907200E3922B /* logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D811F8F813EC907200E3922B /* logo@2x.png */; };
+ D86035C413E0538600CB1785 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D86035C313E0538600CB1785 /* CoreLocation.framework */; };
+ D86035C613E0539A00CB1785 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D86035C513E0539A00CB1785 /* MapKit.framework */; };
+ D8F180E713F0599A009B0C96 /* quickdialog.png in Resources */ = {isa = PBXBuildFile; fileRef = D8F180E513F0599A009B0C96 /* quickdialog.png */; };
+ D8F180E813F0599A009B0C96 /* quickdialog@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D8F180E613F0599A009B0C96 /* quickdialog@2x.png */; };
+ D8F180E813F0599A009B0C98 /* DecimalElement.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F180E813F0599A009B0C97 /* DecimalElement.m */; };
+ D8F180E813F0599A009B0C9B /* DecimalTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F180E813F0599A009B0C9A /* DecimalTableViewCell.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ D80B0E3313E052DF00FA85CA /* QuickDialog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QuickDialog.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D80B0E3713E052DF00FA85CA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ D80B0E3913E052DF00FA85CA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ D80B0E3B13E052DF00FA85CA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ D811F88413EC905B00E3922B /* BadgeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BadgeElement.h; path = quickdialog/BadgeElement.h; sourceTree = SOURCE_ROOT; };
+ D811F88513EC905B00E3922B /* BadgeElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BadgeElement.m; path = quickdialog/BadgeElement.m; sourceTree = SOURCE_ROOT; };
+ D811F88613EC905B00E3922B /* BadgeTableCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BadgeTableCell.h; path = quickdialog/BadgeTableCell.h; sourceTree = SOURCE_ROOT; };
+ D811F88713EC905B00E3922B /* BadgeTableCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BadgeTableCell.m; path = quickdialog/BadgeTableCell.m; sourceTree = SOURCE_ROOT; };
+ D811F88813EC905B00E3922B /* BooleanElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BooleanElement.h; path = quickdialog/BooleanElement.h; sourceTree = SOURCE_ROOT; };
+ D811F88913EC905B00E3922B /* BooleanElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BooleanElement.m; path = quickdialog/BooleanElement.m; sourceTree = SOURCE_ROOT; };
+ D811F88A13EC905B00E3922B /* ButtonElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ButtonElement.h; path = quickdialog/ButtonElement.h; sourceTree = SOURCE_ROOT; };
+ D811F88B13EC905B00E3922B /* ButtonElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ButtonElement.m; path = quickdialog/ButtonElement.m; sourceTree = SOURCE_ROOT; };
+ D811F88C13EC905B00E3922B /* DateEntryTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DateEntryTableViewCell.h; path = quickdialog/DateEntryTableViewCell.h; sourceTree = SOURCE_ROOT; };
+ D811F88D13EC905B00E3922B /* DateEntryTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DateEntryTableViewCell.m; path = quickdialog/DateEntryTableViewCell.m; sourceTree = SOURCE_ROOT; };
+ D811F88E13EC905B00E3922B /* DateTimeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DateTimeElement.h; path = quickdialog/DateTimeElement.h; sourceTree = SOURCE_ROOT; };
+ D811F88F13EC905B00E3922B /* DateTimeElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DateTimeElement.m; path = quickdialog/DateTimeElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89013EC905B00E3922B /* DateTimeInlineElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DateTimeInlineElement.h; path = quickdialog/DateTimeInlineElement.h; sourceTree = SOURCE_ROOT; };
+ D811F89113EC905B00E3922B /* DateTimeInlineElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DateTimeInlineElement.m; path = quickdialog/DateTimeInlineElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89213EC905B00E3922B /* Element.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Element.h; path = quickdialog/Element.h; sourceTree = SOURCE_ROOT; };
+ D811F89313EC905B00E3922B /* Element.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Element.m; path = quickdialog/Element.m; sourceTree = SOURCE_ROOT; };
+ D811F89413EC905B00E3922B /* EntryElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EntryElement.h; path = quickdialog/EntryElement.h; sourceTree = SOURCE_ROOT; };
+ D811F89513EC905B00E3922B /* EntryElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EntryElement.m; path = quickdialog/EntryElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89613EC905B00E3922B /* EntryTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EntryTableViewCell.h; path = quickdialog/EntryTableViewCell.h; sourceTree = SOURCE_ROOT; };
+ D811F89713EC905B00E3922B /* EntryTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EntryTableViewCell.m; path = quickdialog/EntryTableViewCell.m; sourceTree = SOURCE_ROOT; };
+ D811F89813EC905B00E3922B /* FloatElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FloatElement.h; path = quickdialog/FloatElement.h; sourceTree = SOURCE_ROOT; };
+ D811F89913EC905B00E3922B /* FloatElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FloatElement.m; path = quickdialog/FloatElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89A13EC905B00E3922B /* LabelElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LabelElement.h; path = quickdialog/LabelElement.h; sourceTree = SOURCE_ROOT; };
+ D811F89B13EC905B00E3922B /* LabelElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LabelElement.m; path = quickdialog/LabelElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89C13EC905B00E3922B /* MapElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MapElement.h; path = quickdialog/MapElement.h; sourceTree = SOURCE_ROOT; };
+ D811F89D13EC905B00E3922B /* MapElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MapElement.m; path = quickdialog/MapElement.m; sourceTree = SOURCE_ROOT; };
+ D811F89E13EC905B00E3922B /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MapViewController.h; path = quickdialog/MapViewController.h; sourceTree = SOURCE_ROOT; };
+ D811F89F13EC905B00E3922B /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MapViewController.m; path = quickdialog/MapViewController.m; sourceTree = SOURCE_ROOT; };
+ D811F8A013EC905B00E3922B /* QuickAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickAnnotation.h; path = quickdialog/QuickAnnotation.h; sourceTree = SOURCE_ROOT; };
+ D811F8A113EC905B00E3922B /* QuickAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickAnnotation.m; path = quickdialog/QuickAnnotation.m; sourceTree = SOURCE_ROOT; };
+ D811F8A213EC905B00E3922B /* QuickDialogController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogController.h; path = quickdialog/QuickDialogController.h; sourceTree = SOURCE_ROOT; };
+ D811F8A313EC905B00E3922B /* QuickDialogController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickDialogController.m; path = quickdialog/QuickDialogController.m; sourceTree = SOURCE_ROOT; };
+ D811F8A413EC905B00E3922B /* QuickDialogController+Loading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "QuickDialogController+Loading.h"; path = "quickdialog/QuickDialogController+Loading.h"; sourceTree = SOURCE_ROOT; };
+ D811F8A513EC905B00E3922B /* QuickDialogController+Loading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "QuickDialogController+Loading.m"; path = "quickdialog/QuickDialogController+Loading.m"; sourceTree = SOURCE_ROOT; };
+ D811F8A613EC905B00E3922B /* QuickDialogDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogDataSource.h; path = quickdialog/QuickDialogDataSource.h; sourceTree = SOURCE_ROOT; };
+ D811F8A713EC905B00E3922B /* QuickDialogDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickDialogDataSource.m; path = quickdialog/QuickDialogDataSource.m; sourceTree = SOURCE_ROOT; };
+ D811F8A813EC905B00E3922B /* QuickDialogStyleProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogStyleProvider.h; path = quickdialog/QuickDialogStyleProvider.h; sourceTree = SOURCE_ROOT; };
+ D811F8A913EC905B00E3922B /* QuickDialogTableDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogTableDelegate.h; path = quickdialog/QuickDialogTableDelegate.h; sourceTree = SOURCE_ROOT; };
+ D811F8AA13EC905B00E3922B /* QuickDialogTableDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickDialogTableDelegate.m; path = quickdialog/QuickDialogTableDelegate.m; sourceTree = SOURCE_ROOT; };
+ D811F8AB13EC905B00E3922B /* QuickDialogTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogTableView.h; path = quickdialog/QuickDialogTableView.h; sourceTree = SOURCE_ROOT; };
+ D811F8AC13EC905B00E3922B /* QuickDialogTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickDialogTableView.m; path = quickdialog/QuickDialogTableView.m; sourceTree = SOURCE_ROOT; };
+ D811F8AD13EC905B00E3922B /* quickform-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "quickform-Prefix.pch"; path = "quickdialog/quickform-Prefix.pch"; sourceTree = SOURCE_ROOT; };
+ D811F8AE13EC905B00E3922B /* RadioElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RadioElement.h; path = quickdialog/RadioElement.h; sourceTree = SOURCE_ROOT; };
+ D811F8AF13EC905B00E3922B /* RadioElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RadioElement.m; path = quickdialog/RadioElement.m; sourceTree = SOURCE_ROOT; };
+ D811F8B013EC905B00E3922B /* RadioItemElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RadioItemElement.h; path = quickdialog/RadioItemElement.h; sourceTree = SOURCE_ROOT; };
+ D811F8B113EC905B00E3922B /* RadioItemElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RadioItemElement.m; path = quickdialog/RadioItemElement.m; sourceTree = SOURCE_ROOT; };
+ D811F8B213EC905B00E3922B /* RadioSection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RadioSection.h; path = quickdialog/RadioSection.h; sourceTree = SOURCE_ROOT; };
+ D811F8B313EC905B00E3922B /* RadioSection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RadioSection.m; path = quickdialog/RadioSection.m; sourceTree = SOURCE_ROOT; };
+ D811F8B413EC905B00E3922B /* RootElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootElement.h; path = quickdialog/RootElement.h; sourceTree = SOURCE_ROOT; };
+ D811F8B513EC905B00E3922B /* RootElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RootElement.m; path = quickdialog/RootElement.m; sourceTree = SOURCE_ROOT; };
+ D811F8B613EC905B00E3922B /* Section.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Section.h; path = quickdialog/Section.h; sourceTree = SOURCE_ROOT; };
+ D811F8B713EC905B00E3922B /* Section.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Section.m; path = quickdialog/Section.m; sourceTree = SOURCE_ROOT; };
+ D811F8B813EC905B00E3922B /* SortingSection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SortingSection.h; path = quickdialog/SortingSection.h; sourceTree = SOURCE_ROOT; };
+ D811F8B913EC905B00E3922B /* SortingSection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SortingSection.m; path = quickdialog/SortingSection.m; sourceTree = SOURCE_ROOT; };
+ D811F8BA13EC905B00E3922B /* TextElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextElement.h; path = quickdialog/TextElement.h; sourceTree = SOURCE_ROOT; };
+ D811F8BB13EC905B00E3922B /* TextElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TextElement.m; path = quickdialog/TextElement.m; sourceTree = SOURCE_ROOT; };
+ D811F8BC13EC905B00E3922B /* WebElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebElement.h; path = quickdialog/WebElement.h; sourceTree = SOURCE_ROOT; };
+ D811F8BD13EC905B00E3922B /* WebElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebElement.m; path = quickdialog/WebElement.m; sourceTree = SOURCE_ROOT; };
+ D811F8BE13EC905B00E3922B /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebViewController.h; path = quickdialog/WebViewController.h; sourceTree = SOURCE_ROOT; };
+ D811F8BF13EC905B00E3922B /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WebViewController.m; path = quickdialog/WebViewController.m; sourceTree = SOURCE_ROOT; };
+ D811F8DD13EC907200E3922B /* AboutController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutController.h; path = sample/AboutController.h; sourceTree = SOURCE_ROOT; };
+ D811F8DE13EC907200E3922B /* AboutController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AboutController.m; path = sample/AboutController.m; sourceTree = SOURCE_ROOT; };
+ D811F8DF13EC907200E3922B /* DummyDataBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DummyDataBuilder.h; path = sample/DummyDataBuilder.h; sourceTree = SOURCE_ROOT; };
+ D811F8E013EC907200E3922B /* DummyDataBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DummyDataBuilder.m; path = sample/DummyDataBuilder.m; sourceTree = SOURCE_ROOT; };
+ D811F8E313EC907200E3922B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = "<group>"; };
+ D811F8E413EC907200E3922B /* LoginController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LoginController.h; path = sample/LoginController.h; sourceTree = SOURCE_ROOT; };
+ D811F8E513EC907200E3922B /* LoginController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LoginController.m; path = sample/LoginController.m; sourceTree = SOURCE_ROOT; };
+ D811F8E613EC907200E3922B /* LoginInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LoginInfo.h; path = sample/LoginInfo.h; sourceTree = SOURCE_ROOT; };
+ D811F8E713EC907200E3922B /* LoginInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LoginInfo.m; path = sample/LoginInfo.m; sourceTree = SOURCE_ROOT; };
+ D811F8E813EC907200E3922B /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = sample/main.m; sourceTree = SOURCE_ROOT; };
+ D811F8E913EC907200E3922B /* quickdialogexample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "quickdialogexample-Info.plist"; path = "sample/quickdialogexample-Info.plist"; sourceTree = SOURCE_ROOT; };
+ D811F8EA13EC907200E3922B /* quickdialogexample-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "quickdialogexample-Prefix.pch"; path = "sample/quickdialogexample-Prefix.pch"; sourceTree = SOURCE_ROOT; };
+ D811F8EB13EC907200E3922B /* QuickDialogExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogExampleAppDelegate.h; path = sample/QuickDialogExampleAppDelegate.h; sourceTree = SOURCE_ROOT; };
+ D811F8EC13EC907200E3922B /* QuickDialogExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = QuickDialogExampleAppDelegate.m; path = sample/QuickDialogExampleAppDelegate.m; sourceTree = SOURCE_ROOT; };
+ D811F8ED13EC907200E3922B /* QuickDialogExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickDialogExampleViewController.h; path = sample/QuickDialogExampleViewController.h; sourceTree = SOURCE_ROOT; };
+ D811F8EE13EC907200E3922B /* quickdialogexampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = quickdialogexampleViewController.m; path = sample/quickdialogexampleViewController.m; sourceTree = SOURCE_ROOT; };
+ D811F8F013EC907200E3922B /* footer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = footer.png; sourceTree = "<group>"; };
+ D811F8F113EC907200E3922B /* footer@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "footer@2x.png"; sourceTree = "<group>"; };
+ D811F8F213EC907200E3922B /* imgOff.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = imgOff.png; sourceTree = "<group>"; };
+ D811F8F313EC907200E3922B /* imgOn.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = imgOn.png; sourceTree = "<group>"; };
+ D811F8F413EC907200E3922B /* intel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = intel.png; sourceTree = "<group>"; };
+ D811F8F513EC907200E3922B /* iPhone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhone.png; sourceTree = "<group>"; };
+ D811F8F613EC907200E3922B /* keyboard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = keyboard.png; sourceTree = "<group>"; };
+ D811F8F713EC907200E3922B /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
+ D811F8F813EC907200E3922B /* logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo@2x.png"; sourceTree = "<group>"; };
+ D86035C313E0538600CB1785 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
+ D86035C513E0539A00CB1785 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
+ D8F180E513F0599A009B0C96 /* quickdialog.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = quickdialog.png; sourceTree = "<group>"; };
+ D8F180E613F0599A009B0C96 /* quickdialog@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quickdialog@2x.png"; sourceTree = "<group>"; };
+ D8F180E813F0599A009B0C97 /* DecimalElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DecimalElement.m; path = quickdialog/DecimalElement.m; sourceTree = SOURCE_ROOT; };
+ D8F180E813F0599A009B0C99 /* DecimalElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DecimalElement.h; path = quickdialog/DecimalElement.h; sourceTree = SOURCE_ROOT; };
+ D8F180E813F0599A009B0C9A /* DecimalTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DecimalTableViewCell.m; path = quickdialog/DecimalTableViewCell.m; sourceTree = SOURCE_ROOT; };
+ D8F180E813F0599A009B0C9C /* DecimalTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DecimalTableViewCell.h; path = quickdialog/DecimalTableViewCell.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D80B0E3013E052DF00FA85CA /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D86035C613E0539A00CB1785 /* MapKit.framework in Frameworks */,
+ D86035C413E0538600CB1785 /* CoreLocation.framework in Frameworks */,
+ D80B0E3813E052DF00FA85CA /* UIKit.framework in Frameworks */,
+ D80B0E3A13E052DF00FA85CA /* Foundation.framework in Frameworks */,
+ D80B0E3C13E052DF00FA85CA /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ D80B0E2813E052DF00FA85CA = {
+ isa = PBXGroup;
+ children = (
+ D860356713E0534000CB1785 /* quickdialog */,
+ D80B0E3D13E052DF00FA85CA /* sample */,
+ D80B0E3613E052DF00FA85CA /* Frameworks */,
+ D80B0E3413E052DF00FA85CA /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ D80B0E3413E052DF00FA85CA /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D80B0E3313E052DF00FA85CA /* QuickDialog.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ D80B0E3613E052DF00FA85CA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D86035C513E0539A00CB1785 /* MapKit.framework */,
+ D86035C313E0538600CB1785 /* CoreLocation.framework */,
+ D80B0E3713E052DF00FA85CA /* UIKit.framework */,
+ D80B0E3913E052DF00FA85CA /* Foundation.framework */,
+ D80B0E3B13E052DF00FA85CA /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ D80B0E3D13E052DF00FA85CA /* sample */ = {
+ isa = PBXGroup;
+ children = (
+ D811F8DD13EC907200E3922B /* AboutController.h */,
+ D811F8DE13EC907200E3922B /* AboutController.m */,
+ D811F8DF13EC907200E3922B /* DummyDataBuilder.h */,
+ D811F8E013EC907200E3922B /* DummyDataBuilder.m */,
+ D811F8E113EC907200E3922B /* en.lproj */,
+ D811F8E413EC907200E3922B /* LoginController.h */,
+ D811F8E513EC907200E3922B /* LoginController.m */,
+ D811F8E613EC907200E3922B /* LoginInfo.h */,
+ D811F8E713EC907200E3922B /* LoginInfo.m */,
+ D811F8EB13EC907200E3922B /* QuickDialogExampleAppDelegate.h */,
+ D811F8EC13EC907200E3922B /* QuickDialogExampleAppDelegate.m */,
+ D811F8ED13EC907200E3922B /* QuickDialogExampleViewController.h */,
+ D811F8EE13EC907200E3922B /* quickdialogexampleViewController.m */,
+ D811F8EF13EC907200E3922B /* Resources */,
+ D80B0E3E13E052DF00FA85CA /* Supporting Files */,
+ D8F180E813F0599A009B0C9D /* sample */,
+ );
+ name = sample;
+ path = quickformexample;
+ sourceTree = "<group>";
+ };
+ D80B0E3E13E052DF00FA85CA /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ D811F8E813EC907200E3922B /* main.m */,
+ D811F8E913EC907200E3922B /* quickdialogexample-Info.plist */,
+ D811F8EA13EC907200E3922B /* quickdialogexample-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ D811F8E113EC907200E3922B /* en.lproj */ = {
+ isa = PBXGroup;
+ children = (
+ D811F8E213EC907200E3922B /* InfoPlist.strings */,
+ );
+ name = en.lproj;
+ path = sample/en.lproj;
+ sourceTree = SOURCE_ROOT;
+ };
+ D811F8EF13EC907200E3922B /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ D8F180E513F0599A009B0C96 /* quickdialog.png */,
+ D8F180E613F0599A009B0C96 /* quickdialog@2x.png */,
+ D811F8F013EC907200E3922B /* footer.png */,
+ D811F8F113EC907200E3922B /* footer@2x.png */,
+ D811F8F213EC907200E3922B /* imgOff.png */,
+ D811F8F313EC907200E3922B /* imgOn.png */,
+ D811F8F413EC907200E3922B /* intel.png */,
+ D811F8F513EC907200E3922B /* iPhone.png */,
+ D811F8F613EC907200E3922B /* keyboard.png */,
+ D811F8F713EC907200E3922B /* logo.png */,
+ D811F8F813EC907200E3922B /* logo@2x.png */,
+ );
+ name = Resources;
+ path = sample/Resources;
+ sourceTree = SOURCE_ROOT;
+ };
+ D860356713E0534000CB1785 /* quickdialog */ = {
+ isa = PBXGroup;
+ children = (
+ D8F180E813F0599A009B0C9C /* DecimalTableViewCell.h */,
+ D8F180E813F0599A009B0C9A /* DecimalTableViewCell.m */,
+ D8F180E813F0599A009B0C99 /* DecimalElement.h */,
+ D8F180E813F0599A009B0C97 /* DecimalElement.m */,
+ D811F88413EC905B00E3922B /* BadgeElement.h */,
+ D811F88513EC905B00E3922B /* BadgeElement.m */,
+ D811F88613EC905B00E3922B /* BadgeTableCell.h */,
+ D811F88713EC905B00E3922B /* BadgeTableCell.m */,
+ D811F88813EC905B00E3922B /* BooleanElement.h */,
+ D811F88913EC905B00E3922B /* BooleanElement.m */,
+ D811F88A13EC905B00E3922B /* ButtonElement.h */,
+ D811F88B13EC905B00E3922B /* ButtonElement.m */,
+ D811F88C13EC905B00E3922B /* DateEntryTableViewCell.h */,
+ D811F88D13EC905B00E3922B /* DateEntryTableViewCell.m */,
+ D811F88E13EC905B00E3922B /* DateTimeElement.h */,
+ D811F88F13EC905B00E3922B /* DateTimeElement.m */,
+ D811F89013EC905B00E3922B /* DateTimeInlineElement.h */,
+ D811F89113EC905B00E3922B /* DateTimeInlineElement.m */,
+ D811F89213EC905B00E3922B /* Element.h */,
+ D811F89313EC905B00E3922B /* Element.m */,
+ D811F89413EC905B00E3922B /* EntryElement.h */,
+ D811F89513EC905B00E3922B /* EntryElement.m */,
+ D811F89613EC905B00E3922B /* EntryTableViewCell.h */,
+ D811F89713EC905B00E3922B /* EntryTableViewCell.m */,
+ D811F89813EC905B00E3922B /* FloatElement.h */,
+ D811F89913EC905B00E3922B /* FloatElement.m */,
+ D811F89A13EC905B00E3922B /* LabelElement.h */,
+ D811F89B13EC905B00E3922B /* LabelElement.m */,
+ D811F89C13EC905B00E3922B /* MapElement.h */,
+ D811F89D13EC905B00E3922B /* MapElement.m */,
+ D811F89E13EC905B00E3922B /* MapViewController.h */,
+ D811F89F13EC905B00E3922B /* MapViewController.m */,
+ D811F8A013EC905B00E3922B /* QuickAnnotation.h */,
+ D811F8A113EC905B00E3922B /* QuickAnnotation.m */,
+ D811F8A213EC905B00E3922B /* QuickDialogController.h */,
+ D811F8A313EC905B00E3922B /* QuickDialogController.m */,
+ D811F8A413EC905B00E3922B /* QuickDialogController+Loading.h */,
+ D811F8A513EC905B00E3922B /* QuickDialogController+Loading.m */,
+ D811F8A613EC905B00E3922B /* QuickDialogDataSource.h */,
+ D811F8A713EC905B00E3922B /* QuickDialogDataSource.m */,
+ D811F8A813EC905B00E3922B /* QuickDialogStyleProvider.h */,
+ D811F8A913EC905B00E3922B /* QuickDialogTableDelegate.h */,
+ D811F8AA13EC905B00E3922B /* QuickDialogTableDelegate.m */,
+ D811F8AB13EC905B00E3922B /* QuickDialogTableView.h */,
+ D811F8AC13EC905B00E3922B /* QuickDialogTableView.m */,
+ D811F8AD13EC905B00E3922B /* quickform-Prefix.pch */,
+ D811F8AE13EC905B00E3922B /* RadioElement.h */,
+ D811F8AF13EC905B00E3922B /* RadioElement.m */,
+ D811F8B013EC905B00E3922B /* RadioItemElement.h */,
+ D811F8B113EC905B00E3922B /* RadioItemElement.m */,
+ D811F8B213EC905B00E3922B /* RadioSection.h */,
+ D811F8B313EC905B00E3922B /* RadioSection.m */,
+ D811F8B413EC905B00E3922B /* RootElement.h */,
+ D811F8B513EC905B00E3922B /* RootElement.m */,
+ D811F8B613EC905B00E3922B /* Section.h */,
+ D811F8B713EC905B00E3922B /* Section.m */,
+ D811F8B813EC905B00E3922B /* SortingSection.h */,
+ D811F8B913EC905B00E3922B /* SortingSection.m */,
+ D811F8BA13EC905B00E3922B /* TextElement.h */,
+ D811F8BB13EC905B00E3922B /* TextElement.m */,
+ D811F8BC13EC905B00E3922B /* WebElement.h */,
+ D811F8BD13EC905B00E3922B /* WebElement.m */,
+ D811F8BE13EC905B00E3922B /* WebViewController.h */,
+ D811F8BF13EC905B00E3922B /* WebViewController.m */,
+ );
+ name = quickdialog;
+ path = quickform;
+ sourceTree = "<group>";
+ };
+ D8F180E813F0599A009B0C9D /* sample */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = sample;
+ path = quickformexample;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ D80B0E3213E052DF00FA85CA /* QuickDialog */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = D80B0E4B13E052DF00FA85CA /* Build configuration list for PBXNativeTarget "QuickDialog" */;
+ buildPhases = (
+ D80B0E2F13E052DF00FA85CA /* Sources */,
+ D80B0E3013E052DF00FA85CA /* Frameworks */,
+ D80B0E3113E052DF00FA85CA /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = QuickDialog;
+ productName = quickformexample;
+ productReference = D80B0E3313E052DF00FA85CA /* QuickDialog.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ D80B0E2A13E052DF00FA85CA /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
+ buildConfigurationList = D80B0E2D13E052DF00FA85CA /* Build configuration list for PBXProject "QuickDialog" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = D80B0E2813E052DF00FA85CA;
+ productRefGroup = D80B0E3413E052DF00FA85CA /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D80B0E3213E052DF00FA85CA /* QuickDialog */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ D80B0E3113E052DF00FA85CA /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D811F90413EC907200E3922B /* footer.png in Resources */,
+ D811F90513EC907200E3922B /* footer@2x.png in Resources */,
+ D811F90613EC907200E3922B /* imgOff.png in Resources */,
+ D811F90713EC907200E3922B /* imgOn.png in Resources */,
+ D811F90813EC907200E3922B /* intel.png in Resources */,
+ D811F90913EC907200E3922B /* iPhone.png in Resources */,
+ D811F90A13EC907200E3922B /* keyboard.png in Resources */,
+ D811F90B13EC907200E3922B /* logo.png in Resources */,
+ D811F90C13EC907200E3922B /* logo@2x.png in Resources */,
+ D8F180E713F0599A009B0C96 /* quickdialog.png in Resources */,
+ D8F180E813F0599A009B0C96 /* quickdialog@2x.png in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D80B0E2F13E052DF00FA85CA /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D811F8C013EC905B00E3922B /* BadgeElement.m in Sources */,
+ D811F8C113EC905B00E3922B /* BadgeTableCell.m in Sources */,
+ D811F8C213EC905B00E3922B /* BooleanElement.m in Sources */,
+ D811F8C313EC905B00E3922B /* ButtonElement.m in Sources */,
+ D811F8C413EC905B00E3922B /* DateEntryTableViewCell.m in Sources */,
+ D811F8C513EC905B00E3922B /* DateTimeElement.m in Sources */,
+ D811F8C613EC905B00E3922B /* DateTimeInlineElement.m in Sources */,
+ D811F8C713EC905B00E3922B /* Element.m in Sources */,
+ D811F8C813EC905B00E3922B /* EntryElement.m in Sources */,
+ D811F8C913EC905B00E3922B /* EntryTableViewCell.m in Sources */,
+ D811F8CA13EC905B00E3922B /* FloatElement.m in Sources */,
+ D811F8CB13EC905B00E3922B /* LabelElement.m in Sources */,
+ D811F8CC13EC905B00E3922B /* MapElement.m in Sources */,
+ D811F8CD13EC905B00E3922B /* MapViewController.m in Sources */,
+ D811F8CE13EC905B00E3922B /* QuickAnnotation.m in Sources */,
+ D811F8CF13EC905B00E3922B /* QuickDialogController.m in Sources */,
+ D811F8D013EC905B00E3922B /* QuickDialogController+Loading.m in Sources */,
+ D811F8D113EC905B00E3922B /* QuickDialogDataSource.m in Sources */,
+ D811F8D213EC905B00E3922B /* QuickDialogTableDelegate.m in Sources */,
+ D811F8D313EC905B00E3922B /* QuickDialogTableView.m in Sources */,
+ D811F8D413EC905B00E3922B /* RadioElement.m in Sources */,
+ D811F8D513EC905B00E3922B /* RadioItemElement.m in Sources */,
+ D811F8D613EC905B00E3922B /* RadioSection.m in Sources */,
+ D811F8D713EC905B00E3922B /* RootElement.m in Sources */,
+ D811F8D813EC905B00E3922B /* Section.m in Sources */,
+ D811F8D913EC905B00E3922B /* SortingSection.m in Sources */,
+ D811F8DA13EC905B00E3922B /* TextElement.m in Sources */,
+ D811F8DB13EC905B00E3922B /* WebElement.m in Sources */,
+ D811F8DC13EC905B00E3922B /* WebViewController.m in Sources */,
+ D811F8FB13EC907200E3922B /* AboutController.m in Sources */,
+ D811F8FC13EC907200E3922B /* DummyDataBuilder.m in Sources */,
+ D811F8FE13EC907200E3922B /* LoginController.m in Sources */,
+ D811F8FF13EC907200E3922B /* LoginInfo.m in Sources */,
+ D811F90013EC907200E3922B /* main.m in Sources */,
+ D811F90213EC907200E3922B /* QuickDialogExampleAppDelegate.m in Sources */,
+ D811F90313EC907200E3922B /* quickdialogexampleViewController.m in Sources */,
+ D8F180E813F0599A009B0C98 /* DecimalElement.m in Sources */,
+ D8F180E813F0599A009B0C9B /* DecimalTableViewCell.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ D811F8E213EC907200E3922B /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ D811F8E313EC907200E3922B /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ D80B0E4913E052DF00FA85CA /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ D80B0E4A13E052DF00FA85CA /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 5.0;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ D80B0E4C13E052DF00FA85CA /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "sample/quickdialogexample-Prefix.pch";
+ INFOPLIST_FILE = "sample/quickdialogexample-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TARGETED_DEVICE_FAMILY = 1;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ D80B0E4D13E052DF00FA85CA /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "sample/quickdialogexample-Prefix.pch";
+ INFOPLIST_FILE = "sample/quickdialogexample-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TARGETED_DEVICE_FAMILY = 1;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ D80B0E2D13E052DF00FA85CA /* Build configuration list for PBXProject "QuickDialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D80B0E4913E052DF00FA85CA /* Debug */,
+ D80B0E4A13E052DF00FA85CA /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ D80B0E4B13E052DF00FA85CA /* Build configuration list for PBXNativeTarget "QuickDialog" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D80B0E4C13E052DF00FA85CA /* Debug */,
+ D80B0E4D13E052DF00FA85CA /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = D80B0E2A13E052DF00FA85CA /* Project object */;
+}
7 QuickDialog.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:quickformexample.xcodeproj">
+ </FileRef>
+</Workspace>
10 README
@@ -0,0 +1,10 @@
+QuickDialog
+============
+
+Quick and simple dialog creation for iOS users.
+
+ATTENTION: this is definitely not ready to be used yet. Several bugs and interface changes will be done over the next days/weeks.
+
+If you're interested in helping with development, please contact me! I would appreciate any help!
+
+You'll need to use the XCode 4.2 beta to run this code. It depends on ARC for memory management.
BIN other/quickdialog-logo.psd
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 quickdialog.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "group:QuickDialog.xcodeproj">
+ </FileRef>
+</Workspace>
27 quickdialog/BadgeElement.h
@@ -0,0 +1,27 @@
+//
+// Created by escoz on 7/13/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class LabelElement;
+@class RootElement;
+
+
+@interface BadgeElement : LabelElement {
+
+@private
+ UIColor *_badgeColor;
+ NSString *_badge;
+}
+
+@property(nonatomic, retain) UIColor *badgeColor;
+@property(nonatomic, strong) NSString *badge;
+
+
+- (BadgeElement *)initWithTitle:(NSString *)title Value:(NSString *)value;
+@end
37 quickdialog/BadgeElement.m
@@ -0,0 +1,37 @@
+//
+// Created by escoz on 7/13/11.
+//
+
+#import "BadgeTableCell.h"
+#import "QuickDialogTableView.h"
+
+
+@implementation BadgeElement
+@synthesize badgeColor = _badgeColor;
+@synthesize badge = _badge;
+
+
+- (BadgeElement *)initWithTitle:(NSString *)title Value:(NSString *)value {
+ self = [super init];
+ _title = title;
+ _badge = value;
+ _badgeColor = [UIColor colorWithRed:0.530f green:0.600f blue:0.738f alpha:1.000f];
+ return self;
+
+}
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ BadgeTableCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformBadgeElement"];
+ if (cell==nil){
+ cell = [[BadgeTableCell alloc] init];
+ }
+ cell.textLabel.text = _title;
+ cell.badgeLabel.text = _badge;
+ cell.badgeColor = _badgeColor;
+ cell.imageView.image = _image;
+ cell.accessoryType = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone;
+ cell.selectionStyle = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellSelectionStyleBlue: UITableViewCellSelectionStyleNone;
+ [cell setNeedsDisplay];
+ return cell;
+}
+
+@end
22 quickdialog/BadgeTableCell.h
@@ -0,0 +1,22 @@
+//
+// Created by escoz on 7/13/11.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+
+@interface BadgeTableCell : UITableViewCell {
+
+@private
+ UIColor *_badgeColor;
+ UILabel *_badgeLabel;
+}
+- (BadgeTableCell *)init;
+
+
+@property(nonatomic, retain) UIColor *badgeColor;
+@property(nonatomic, readonly, strong) UILabel *badgeLabel;
+
+@end
55 quickdialog/BadgeTableCell.m
@@ -0,0 +1,55 @@
+//
+// Created by escoz on 7/13/11.
+//
+
+#import "BadgeTableCell.h"
+#import <QuartzCore/QuartzCore.h>
+
+@interface BadgeTableCell ()
+@end
+
+@implementation BadgeTableCell
+
+@synthesize badgeColor = _badgeColor;
+@synthesize badgeLabel = _badgeLabel;
+
+
+- (BadgeTableCell *)init {
+ self = [super initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"QuickformBadgeElement"];
+ if (self){
+ _badgeColor = [UIColor colorWithRed:0.530f green:0.600f blue:0.738f alpha:1.000f];
+ _badgeLabel = [[UILabel alloc] init];
+ [self.contentView addSubview:_badgeLabel];
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
+
+ _badgeLabel.backgroundColor = _badgeColor;
+ _badgeLabel.textColor = [UIColor whiteColor];
+ _badgeLabel.backgroundColor = [UIColor clearColor];
+ _badgeLabel.textAlignment = UITextAlignmentCenter;
+ _badgeLabel.font = [UIFont boldSystemFontOfSize:14];
+
+ }
+ return self;
+}
+
+- (void) drawRect:(CGRect)rect
+{
+ [_badgeLabel sizeToFit];
+ _badgeLabel.frame= CGRectMake(self.contentView.frame.size.width-_badgeLabel.frame.size.width-_badgeLabel.frame.size.height, 12, _badgeLabel.frame.size.width, _badgeLabel.frame.size.height);
+
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ float radius = _badgeLabel.frame.size.height / 2.0f;
+
+ CGContextSaveGState(context);
+ CGContextSetFillColorWithColor(context, [_badgeColor CGColor]);
+ CGContextBeginPath(context);
+ CGContextAddArc(context, _badgeLabel.frame.origin.x , _badgeLabel.frame.origin.y + radius, radius, (CGFloat)M_PI_2 , 3.0f * (CGFloat)M_PI_2, NO);
+ CGContextAddArc(context, _badgeLabel.frame.origin.x + _badgeLabel.frame.size.width, _badgeLabel.frame.origin.y + radius, radius, 3.0f * (CGFloat)M_PI_2, (CGFloat)M_PI_2, NO);
+ CGContextClosePath(context);
+ CGContextFillPath(context);
+ CGContextRestoreGState(context);
+}
+
+
+
+@end
30 quickdialog/BooleanElement.h
@@ -0,0 +1,30 @@
+//
+// Created by escoz on 7/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class Element;
+@class LabelElement;
+
+@interface BooleanElement : LabelElement {
+ BOOL _boolValue;
+ BOOL _enabled;
+@private
+ UIImage *_onImage;
+ UIImage *_offImage;
+}
+
+@property(nonatomic, retain) UIImage *onImage;
+@property(nonatomic, retain) UIImage *offImage;
+@property (nonatomic) BOOL boolValue;
+@property(nonatomic) BOOL enabled;
+
+- (BooleanElement *)initWithTitle:(NSString *)title BoolValue:(BOOL)value;
+
+- (void)switched:(id)switched;
+@end
77 quickdialog/BooleanElement.m
@@ -0,0 +1,77 @@
+//
+// Created by escoz on 7/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "Element.h"
+#import "LabelElement.h"
+#import "BooleanElement.h"
+#import "QuickDialogTableView.h"
+
+
+@implementation BooleanElement
+
+
+@synthesize onImage = _onImage;
+@synthesize offImage = _offImage;
+@synthesize boolValue = _boolValue;
+@synthesize enabled = _enabled;
+
+
+- (BooleanElement *)init {
+ self = [self initWithTitle:nil BoolValue:YES];
+ return self;
+}
+
+- (BooleanElement *)initWithTitle:(NSString *)title BoolValue:(BOOL)value {
+ self = [self initWithTitle:title Value:nil];
+ _boolValue = value;
+ _enabled = YES;
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [super getCellForTableView:tableView controller:controller];
+ cell.accessoryType = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone;
+ cell.selectionStyle = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellSelectionStyleBlue: UITableViewCellSelectionStyleNone;
+
+ if ((_onImage==nil) && (_offImage==nil)) {
+ UISwitch *boolSwitch = [[UISwitch alloc] init];
+ boolSwitch.on = _boolValue;
+ boolSwitch.enabled = _enabled;
+ [boolSwitch addTarget:self action:@selector(switched:) forControlEvents:UIControlEventValueChanged];
+ cell.accessoryView = boolSwitch;
+
+ } else {
+ UIImageView *boolSwitch = [[UIImageView alloc] initWithImage: _boolValue ? _onImage : _offImage];
+ cell.accessoryView = boolSwitch;
+ cell.selectionStyle = UITableViewCellSelectionStyleBlue;
+ }
+
+ return cell;
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath {
+ UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
+ _boolValue = !_boolValue;
+ if ([cell.accessoryView class] == [UIImageView class]){
+ ((UIImageView *)cell.accessoryView).image = _boolValue ? _onImage : _offImage;
+ }
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
+}
+
+
+- (void)switched:(id)boolSwitch {
+ _boolValue = ((UISwitch *)boolSwitch).on;
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+ [obj setValue:[NSNumber numberWithBool:_boolValue] forKey:_key];
+}
+
+
+@end
20 quickdialog/ButtonElement.h
@@ -0,0 +1,20 @@
+//
+// Created by escoz on 7/11/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+
+@class Element;
+@class LabelElement;
+
+
+@interface ButtonElement : LabelElement {
+
+}
+
+- (ButtonElement *)initWithTitle:(NSString *)title;
+
+@end
44 quickdialog/ButtonElement.m
@@ -0,0 +1,44 @@
+//
+// Created by escoz on 7/11/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "Element.h"
+#import "LabelElement.h"
+#import "ButtonElement.h"
+#import "QuickDialogTableView.h"
+#import "QuickDialogController.h"
+
+
+@implementation ButtonElement
+
+
+
+- (ButtonElement *)initWithTitle:(NSString *)title {
+ self = [super initWithTitle:title Value:nil];
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(UITableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformButtonElement"];
+ if (cell == nil){
+ cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TODO"];
+ }
+ cell.selectionStyle = UITableViewCellSelectionStyleBlue;
+ cell.textLabel.text = _title;
+ cell.textLabel.textAlignment = UITextAlignmentCenter;
+ cell.textLabel.textColor = [UIColor colorWithRed:50.0f/255.0f green:79.0f/255.0f blue:133.0f/255.0f alpha:1];
+ return cell;
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath {
+ [super selected:tableView controller:controller indexPath:indexPath];
+
+
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
+}
+
+
+@end
24 quickdialog/DateEntryTableViewCell.h
@@ -0,0 +1,24 @@
+//
+// Created by escoz on 7/15/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class EntryTableViewCell;
+
+
+@interface DateEntryTableViewCell : EntryTableViewCell {
+
+ UIDatePicker *_pickerView;
+@private
+ UILabel *_centeredLabel;
+}
+@property(nonatomic, strong) UIDatePicker *pickerView;
+
+@property(nonatomic, retain) UILabel *centeredLabel;
+
+@end
110 quickdialog/DateEntryTableViewCell.m
@@ -0,0 +1,110 @@
+//
+// Created by escoz on 7/15/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <UIKit/UIKit.h>
+#import "EntryTableViewCell.h"
+#import "DateEntryTableViewCell.h"
+#import "Element.h"
+#import "LabelElement.h"
+#import "EntryElement.h"
+#import "DateTimeInlineElement.h"
+
+
+@interface DateEntryTableViewCell ()
+- (void)createSubviews;
+
+@end
+
+@implementation DateEntryTableViewCell
+
+@synthesize pickerView = _pickerView;
+@synthesize centeredLabel = _centeredLabel;
+
+
+- (DateEntryTableViewCell *)init {
+ self = [self initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"QuickformDateTimeInlineElement"];
+ if (self!=nil){
+ [self createSubviews];
+ self.selectionStyle = UITableViewCellSelectionStyleGray;
+ }
+ return self;
+}
+
+- (void)createSubviews {
+ [super createSubviews];
+ _textField.hidden = YES;
+
+ _pickerView = [[UIDatePicker alloc] init];
+ [_pickerView sizeToFit];
+ _pickerView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
+ [_pickerView addTarget:self action:@selector(dateChanged:)
+ forControlEvents:UIControlEventValueChanged];
+
+ _textField.inputView = _pickerView;
+
+ self.centeredLabel = [[UILabel alloc] init];
+ self.centeredLabel.textColor = [UIColor colorWithRed:0.243 green:0.306 blue:0.435 alpha:1.0];
+ self.centeredLabel.highlightedTextColor = [UIColor whiteColor];
+ self.centeredLabel.font = [UIFont systemFontOfSize:17];
+ self.centeredLabel.textAlignment = UITextAlignmentCenter;
+ self.centeredLabel.backgroundColor = [UIColor clearColor];
+ self.centeredLabel.frame = CGRectMake(10, 10, self.contentView.frame.size.width-20, self.contentView.frame.size.height-20);
+ [self.contentView addSubview:self.centeredLabel];
+}
+
+- (void) dateChanged:(id)sender{
+ ((DateTimeInlineElement *) _entryElement).dateValue = _pickerView.date;
+ [self prepareForElement:_entryElement inTableView:_quickformTableView];
+}
+
+- (void)prepareForElement:(EntryElement *)element inTableView:(QuickDialogTableView *)tableView {
+ DateTimeInlineElement *entry = (DateTimeInlineElement *)element;
+ [super prepareForElement:element inTableView:tableView];
+
+ DateTimeInlineElement *dateElement = ((DateTimeInlineElement *) element);
+
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ switch (dateElement.mode) {
+ case UIDatePickerModeDate:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+ break;
+ case UIDatePickerModeTime:
+ [dateFormatter setDateStyle:NSDateFormatterNoStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ case UIDatePickerModeDateAndTime:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ case UIDatePickerModeCountDownTimer:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ }
+
+ if (!entry.centerLabel){
+ self.textLabel.text = element.title;
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
+ self.centeredLabel.text = nil;
+ self.detailTextLabel.text = [dateFormatter stringFromDate:dateElement.dateValue];
+
+ } else {
+ self.selectionStyle = UITableViewCellSelectionStyleBlue;
+ self.textLabel.text = nil;
+ self.centeredLabel.text = [dateFormatter stringFromDate:dateElement.dateValue];
+ }
+
+ _textField.text = [dateFormatter stringFromDate:dateElement.dateValue];
+ _pickerView.datePickerMode = dateElement.mode;
+ _textField.placeholder = dateElement.placeholder;
+
+ _textField.inputAccessoryView.hidden = entry.hiddenToolbar;
+}
+
+
+@end
27 quickdialog/DateTimeElement.h
@@ -0,0 +1,27 @@
+//
+// Created by escoz on 7/19/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "RootElement.h"
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class RootElement;
+
+
+@interface DateTimeElement : RootElement {
+ NSDate * _dateValue;
+@private
+ UIDatePickerMode _mode;
+}
+
+@property(nonatomic, retain) NSDate *dateValue;
+
+@property (assign) UIDatePickerMode mode;
+
+- (DateTimeElement *)initWithTitle:(NSString *)string date:(NSDate *)date;
+
+@end
156 quickdialog/DateTimeElement.m
@@ -0,0 +1,156 @@
+//
+// Created by escoz on 7/19/11.
+//
+
+
+// TODO: Needs to be rewritten to use a custom UIViewController with the elements in it.
+// the animation is not smooth when using the dateselector as a keyboard
+
+
+#import "DateTimeElement.h"
+
+
+@interface DateTimeElement ()
+- (void)initializeRoot;
+
+@end
+
+@implementation DateTimeElement
+
+
+@synthesize dateValue = _dateValue;
+
+- (void)setMode:(UIDatePickerMode)mode {
+ _mode = mode;
+ self.sections = nil;
+ [self initializeRoot];
+}
+
+- (void)setDateValue:(NSDate *)date {
+ _dateValue = date;
+ self.sections = nil;
+ [self initializeRoot];
+}
+
+- (UIDatePickerMode)mode {
+ return _mode;
+}
+
+- (DateTimeElement *)initWithTitle:(NSString *)title date:(NSDate *)date {
+ self = [super init];
+ if (self!=nil){
+ _title = title;
+ _dateValue = date;
+ _grouped = YES;
+ _mode = UIDatePickerModeDateAndTime;
+
+ [self initializeRoot];
+ }
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [super getCellForTableView:tableView controller:controller];
+
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ switch (_mode) {
+ case UIDatePickerModeDate:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+ break;
+ case UIDatePickerModeTime:
+ [dateFormatter setDateStyle:NSDateFormatterNoStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ case UIDatePickerModeDateAndTime:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ case UIDatePickerModeCountDownTimer:
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ break;
+ }
+
+ cell.detailTextLabel.text = [dateFormatter stringFromDate:_dateValue];
+
+
+ return cell;
+}
+
+
+- (void)initializeRoot {
+ Section *section = [[Section alloc] initWithTitle:(_mode == UIDatePickerModeDateAndTime ? @"\n" : @"\n\n")];
+
+ if (_mode == UIDatePickerModeDate || _mode == UIDatePickerModeDateAndTime){
+ DateTimeInlineElement *dateElement = (DateTimeInlineElement *) [[DateTimeInlineElement alloc] initWithKey:@"date"];
+ dateElement.dateValue = _dateValue;
+ dateElement.centerLabel = YES;
+ dateElement.mode = UIDatePickerModeDate;
+ dateElement.hiddenToolbar = YES;
+ [section addElement:dateElement];
+
+ }
+ if (_mode == UIDatePickerModeTime || _mode == UIDatePickerModeDateAndTime){
+ DateTimeInlineElement *timeElement = (DateTimeInlineElement *) [[DateTimeInlineElement alloc] initWithKey:@"time"];
+ timeElement.dateValue = _dateValue;
+ timeElement.centerLabel = YES;
+ timeElement.mode = UIDatePickerModeTime;
+ timeElement.hiddenToolbar = YES;
+ [section addElement:timeElement];
+ }
+ [self addSection:section];
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+ [obj setValue:_dateValue forKey:_key];
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath {
+
+ if (self.sections==nil)
+ return;
+
+ QuickDialogController * newController = [[QuickDialogController alloc] initWithRoot:self];
+ newController.tableView.scrollEnabled = NO;
+ [controller displayViewController:newController];
+
+ __block QuickDialogController *controllerForBlock = newController;
+ newController.willDisappearCallback = ^{
+ NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
+
+ [((Section *)[controllerForBlock.root.sections objectAtIndex:0]) fetchValueIntoObject:dict];
+
+ NSDate *date;
+ NSDate *time;
+ if (_mode == UIDatePickerModeTime){
+ time = [dict valueForKey:@"time"];
+ date = [NSDate date];
+ }
+ else if (_mode == UIDatePickerModeDate){
+ date = [dict valueForKey:@"date"];
+ time = [NSDate date];
+ }
+ else if (_mode == UIDatePickerModeDateAndTime){
+ date = [dict valueForKey:@"date"];
+ time = [dict valueForKey:@"time"];
+ }
+
+ NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:date];
+ NSDateComponents *timeComponents = [[NSCalendar currentCalendar] components:kCFCalendarUnitHour | kCFCalendarUnitMinute | kCFCalendarUnitSecond fromDate:time];
+
+ [components setHour:[timeComponents hour]];
+ [components setMinute:[timeComponents minute]];
+ [components setSecond:[timeComponents second]];
+
+ self.dateValue = [[NSCalendar currentCalendar] dateFromComponents:components];
+ };
+
+ [newController.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
+
+}
+
+
+@end
31 quickdialog/DateTimeInlineElement.h
@@ -0,0 +1,31 @@
+//
+// Created by escoz on 7/15/11.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class TextElement;
+@class EntryElement;
+
+
+@interface DateTimeInlineElement : EntryElement {
+ NSDate * _dateValue;
+@private
+ UIDatePickerMode _mode;
+ BOOL _centerLabel;
+}
+
+@property(nonatomic, retain) NSDate *dateValue;
+
+@property (assign) UIDatePickerMode mode;
+
+@property(nonatomic) BOOL centerLabel;
+
+- (DateTimeInlineElement *)initWithDate:(NSDate *)date;
+
+- (DateTimeInlineElement *)initWithTitle:(NSString *)string date:(NSDate *)date;
+
+
+@end
54 quickdialog/DateTimeInlineElement.m
@@ -0,0 +1,54 @@
+//
+// Created by escoz on 7/15/11.
+//
+#import "RootElement.h"
+#import "Element.h"
+#import "LabelElement.h"
+#import "EntryElement.h"
+#import "DateTimeInlineElement.h"
+#import "EntryTableViewCell.h"
+#import "DateEntryTableViewCell.h"
+#import "QuickDialogTableView.h"
+
+
+@implementation DateTimeInlineElement
+
+
+@synthesize dateValue = _dateValue;
+@synthesize mode = _mode;
+@synthesize centerLabel = _centerLabel;
+
+
+- (DateTimeInlineElement *)initWithTitle:(NSString *)string date:(NSDate *)date {
+ self = [super initWithTitle:string Value:[date description]];
+ if (self!=nil){
+ _dateValue = date;
+ _mode = UIDatePickerModeDateAndTime;
+ }
+ return self;
+}
+
+- (DateTimeInlineElement *)initWithDate:(NSDate *)date {
+ return [self initWithTitle:nil date:date];
+
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+
+ DateEntryTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformDateTimeInlineElement"];
+ if (cell==nil){
+ cell = [[DateEntryTableViewCell alloc] init];
+ }
+ [cell prepareForElement:self inTableView:tableView];
+ return cell;
+
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+ [obj setValue:_dateValue forKey:_key];
+}
+
+
+@end
22 quickdialog/DecimalElement.h
@@ -0,0 +1,22 @@
+//
+// Created by escoz on 8/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+
+
+@interface DecimalElement : EntryElement {
+
+}
+
+
+@property(nonatomic, assign) float floatValue;
+@property(nonatomic, assign) NSUInteger fractionDigits;
+
+- (DecimalElement *)initWithTitle:(NSString *)string value:(float)value;
+- (DecimalElement *)initWithValue:(float)value;
+
+@end
53 quickdialog/DecimalElement.m
@@ -0,0 +1,53 @@
+//
+// Created by escoz on 8/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "DecimalElement.h"
+#import "EntryTableViewCell.h"
+#import "DecimalTableViewCell.h"
+#import "QuickDialogTableView.h"
+
+
+@implementation DecimalElement {
+
+@protected
+ NSUInteger _fractionDigits;
+}
+@synthesize floatValue = _floatValue;
+@synthesize fractionDigits = _fractionDigits;
+
+
+- (DecimalElement *)initWithTitle:(NSString *)title value:(float)value {
+ self = [super initWithTitle:title Value:nil] ;
+ _floatValue = value;
+ return self;
+}
+
+
+- (DecimalElement *)initWithValue:(float)value {
+ self = [super init];
+ _floatValue = value;
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+
+ DecimalTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformDecimalElement"];
+ if (cell==nil){
+ cell = [[DecimalTableViewCell alloc] init];
+ }
+ [cell prepareForElement:self inTableView:tableView];
+ return cell;
+
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+ [obj setValue:[NSNumber numberWithFloat:_floatValue] forKey:_key];
+}
+
+@end
19 quickdialog/DecimalTableViewCell.h
@@ -0,0 +1,19 @@
+//
+// Created by escoz on 8/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+
+@class EntryTableViewCell;
+
+
+@interface DecimalTableViewCell : EntryTableViewCell<UITextFieldDelegate> {
+
+}
+
+- (void)prepareForElement:(EntryElement *)element inTableView:(QuickDialogTableView *)view;
+
+@end
80 quickdialog/DecimalTableViewCell.m
@@ -0,0 +1,80 @@
+//
+// Created by escoz on 8/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "EntryTableViewCell.h"
+#import "DecimalTableViewCell.h"
+#import "DecimalElement.h"
+
+@implementation DecimalTableViewCell {
+ NSNumberFormatter *_numberFormatter;
+}
+
+- (DecimalTableViewCell *)init {
+ self = [self initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"QuickformDecimalElement"];
+ if (self!=nil){
+ [self createSubviews];
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
+ _numberFormatter = [[NSNumberFormatter alloc] init];
+ [_numberFormatter setUsesSignificantDigits:YES];
+ };
+ return self;
+}
+
+
+- (void)createSubviews {
+ _textField = [[UITextField alloc] init];
+ [_textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged];
+ _textField.borderStyle = UITextBorderStyleNone;
+ _textField.keyboardType = UIKeyboardTypeDecimalPad;
+ _textField.delegate = self;
+ _textField.clearButtonMode = UITextFieldViewModeWhileEditing;
+ [self.contentView addSubview:_textField];
+
+ [self setNeedsLayout];
+}
+
+- (DecimalElement *)decimalElement {
+ return ((DecimalElement *)_entryElement);
+}
+
+- (void)updateTextFieldFromElement {
+ [_numberFormatter setMaximumFractionDigits:[self decimalElement].fractionDigits];
+ [_numberFormatter setMinimumFractionDigits:[self decimalElement].fractionDigits];
+ DecimalElement *el = (DecimalElement *)_entryElement;
+ _textField.text = [_numberFormatter stringFromNumber:[NSNumber numberWithFloat:el.floatValue]];
+}
+
+- (void)prepareForElement:(EntryElement *)element inTableView:(QuickDialogTableView *)view {
+ [super prepareForElement:element inTableView:view];
+ _entryElement = element;
+ [self updateTextFieldFromElement];
+}
+
+- (void)updateElementFromTextField:(NSString *)value {
+ NSMutableString *result = [[NSMutableString alloc] init];
+ for (NSUInteger i = 0; i< [value length]; i++){
+ unichar c = [value characterAtIndex:i];
+ NSString *charStr = [NSString stringWithCharacters:&c length:1];
+ if ([[NSCharacterSet decimalDigitCharacterSet] characterIsMember:c]) {
+ [result appendString:charStr];
+ }
+ }
+ [_numberFormatter setMaximumFractionDigits:[self decimalElement].fractionDigits];
+ [_numberFormatter setMinimumFractionDigits:[self decimalElement].fractionDigits];
+ [self decimalElement].floatValue= [[_numberFormatter numberFromString:result] floatValue];
+ [self decimalElement].floatValue = (float) (((DecimalElement *)_entryElement).floatValue / pow(10,[self decimalElement].fractionDigits));
+}
+
+- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacement {
+ NSString *newValue = [_textField.text stringByReplacingCharactersInRange:range withString:replacement];
+ [self updateElementFromTextField:newValue];
+ [self updateTextFieldFromElement];
+ return NO;
+}
+
+
+@end
44 quickdialog/Element.h
@@ -0,0 +1,44 @@
+//
+// Created by escoz on 7/7/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class QuickDialogController;
+@class QuickDialogTableView;
+@class Section;
+
+
+@interface Element : NSObject {
+
+@protected
+ Section *_parentSection;
+ NSString *_key;
+
+ void (^_onSelected)(void);
+ NSString * _controllerAction;
+}
+
+@property(nonatomic, copy) void (^onSelected)(void);
+@property(nonatomic, retain) NSString *controllerAction;
+
+
+@property(nonatomic, retain) Section *parentSection;
+
+@property(nonatomic, retain) NSString *key;
+
+- (Element *)initWithKey:(NSString *)key;
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller;
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath;
+
+- (CGFloat)getRowHeightForTableView:(QuickDialogTableView *)tableView;
+
+- (void)fetchValueIntoObject:(id)obj;
+
+@end
59 quickdialog/Element.m
@@ -0,0 +1,59 @@
+//
+// Created by escoz on 7/7/11.
+
+#import "Element.h"
+#import "QuickDialogController.h"
+#import "QuickDialogTableView.h"
+#import "Section.h"
+#import "SortingSection.h"
+#import "QuickDialogStyleProvider.h"
+
+
+@implementation Element
+
+
+@synthesize parentSection = _parentSection;
+@synthesize key = _key;
+
+@synthesize onSelected = _onSelected;
+@synthesize controllerAction = _controllerAction;
+
+
+- (Element *)initWithKey:(NSString *)key {
+ self = [super init];
+ self.key = key;
+ return self;
+
+}
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformElementCell"];
+ if (cell == nil){
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"QuickformElementCell"];
+ }
+ cell.selectionStyle = UITableViewCellSelectionStyleNone;
+ cell.showsReorderControl = YES;
+ cell.accessoryView = nil;
+ return cell;
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath {
+ [[tableView cellForRowAtIndexPath:indexPath] becomeFirstResponder];
+ if (_onSelected!= nil)
+ _onSelected();
+
+ if (self.controllerAction!=NULL){
+ SEL selector = NSSelectorFromString(self.controllerAction);
+ if ([tableView.controller respondsToSelector:selector]) {
+ [tableView.controller performSelector:selector withObject:self];
+ }
+ }
+}
+
+- (CGFloat)getRowHeightForTableView:(QuickDialogTableView *)tableView {
+ return 44;
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+}
+
+@end
30 quickdialog/EntryElement.h
@@ -0,0 +1,30 @@
+//
+// Created by escoz on 7/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+
+@class LabelElement;
+
+
+@interface EntryElement : LabelElement {
+
+@private
+ NSString *_placeholder;
+ NSString *_textValue;
+
+ BOOL _hiddenToolbar;
+ BOOL _isPassword;
+}
+
+
+@property(nonatomic, strong) NSString *textValue;
+@property(nonatomic, strong) NSString *placeholder;
+@property(assign) BOOL hiddenToolbar;
+@property(assign) BOOL isPassword;
+
+- (EntryElement *)initWithTitle:(NSString *)string Value:(NSString *)param Placeholder:(NSString *)string1;
+@end
54 quickdialog/EntryElement.m
@@ -0,0 +1,54 @@
+//
+// Created by escoz on 7/8/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "Element.h"
+#import "LabelElement.h"
+#import "EntryElement.h"
+#import "EntryTableViewCell.h"
+#import "QuickDialogTableView.h"
+
+
+@implementation EntryElement
+
+@synthesize textValue = _textValue;
+@synthesize placeholder = _placeholder;
+@synthesize hiddenToolbar = _hiddenToolbar;
+@synthesize isPassword = _isPassword;
+
+
+- (EntryElement *)initWithTitle:(NSString *)title Value:(NSString *)value Placeholder:(NSString *)placeholder {
+ self = [self initWithTitle:title Value:nil];
+ _textValue = value;
+ _placeholder = placeholder;
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+
+ EntryTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"QuickformEntryElement"];
+ if (cell==nil){
+ cell = [[EntryTableViewCell alloc] init];
+ }
+
+ [cell prepareForElement:self inTableView:tableView];
+ return cell;
+
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)indexPath {
+ [super selected:tableView controller:controller indexPath:indexPath];
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+
+ [obj setValue:_textValue forKey:_key];
+}
+
+
+@end
35 quickdialog/EntryTableViewCell.h
@@ -0,0 +1,35 @@
+//
+// Created by escoz on 7/9/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class EntryElement;
+@class QuickDialogTableView;
+
+
+@interface EntryTableViewCell : UITableViewCell<UITextFieldDelegate> {
+
+ EntryElement *_entryElement;
+ UITextField *_textField;
+
+@protected
+ QuickDialogTableView *_quickformTableView;
+ UIToolbar *_actionBar;
+}
+
+- (void)prepareForElement:(EntryElement *)element inTableView:(QuickDialogTableView *)tableView;
+
+- (void)createSubviews;
+
+- (EntryElement *)findNextElementToFocusOn;
+- (EntryElement *)findPreviousElementToFocusOn;
+
+- (void)recalculatePositioning;
+
+
+@end
210 quickdialog/EntryTableViewCell.m
@@ -0,0 +1,210 @@
+//
+// Created by escoz on 7/9/11.
+
+
+#import "EntryTableViewCell.h"
+#import "Element.h"
+#import "LabelElement.h"
+#import "EntryElement.h"
+#import "Section.h"
+#import "QuickDialogTableView.h"
+
+
+@interface EntryTableViewCell ()
+- (void)previousNextDelegate:(UISegmentedControl *)control;
+- (EntryElement *)findNextElementToFocusOn;
+
+@end
+
+@implementation EntryTableViewCell
+
+-(void)createActionBar {
+ if (_actionBar == nil) {
+ _actionBar = [[UIToolbar alloc] init];
+ _actionBar.translucent = YES;
+ [_actionBar sizeToFit];
+ _actionBar.barStyle = UIBarStyleBlackTranslucent;
+
+ UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
+ style:UIBarButtonItemStyleDone target:self
+ action:@selector(textFieldMustReturn:)];
+
+ UISegmentedControl *prevNext = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Previous", @"Next", nil]];
+ prevNext.momentary = YES;
+ prevNext.segmentedControlStyle = UISegmentedControlStyleBar;
+ prevNext.tintColor = [UIColor darkGrayColor];
+ [prevNext addTarget:self action:@selector(previousNextDelegate:) forControlEvents:UIControlEventValueChanged];
+ UIBarButtonItem *prevNextWrapper = [[UIBarButtonItem alloc] initWithCustomView:prevNext];
+ UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
+ [_actionBar setItems:[NSArray arrayWithObjects:prevNextWrapper, flexible, doneButton, nil]];
+ }
+ _textField.inputAccessoryView = _actionBar;
+}
+
+- (void)createSubviews {
+ _textField = [[UITextField alloc] init];
+ [_textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged];
+ _textField.borderStyle = UITextBorderStyleNone;
+ _textField.delegate = self;
+ _textField.clearButtonMode = UITextFieldViewModeWhileEditing;
+ [self.contentView addSubview:_textField];
+
+ [self setNeedsLayout];
+}
+
+- (EntryTableViewCell *)init {
+ self = [self initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"QuickformEntryElement"];
+ if (self!=nil){
+ [self createSubviews];
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
+ }
+ return self;
+}
+
+- (CGRect)calculateFrameForEntryElement {
+ if (_entryElement.title == NULL) {
+ return CGRectMake(10,11,self.contentView.frame.size.width-30, 24);
+ }
+ CGFloat totalWidth = self.contentView.frame.size.width;
+ CGFloat titleWidth = 0;
+
+ if (CGRectEqualToRect(CGRectZero, _entryElement.parentSection.entryPosition)) {
+
+ for (Element *el in _entryElement.parentSection.elements){
+ if ([el isKindOfClass:[EntryElement class]]){
+ CGFloat fontSize = self.textLabel.font.lineHeight == 0? 18 : self.textLabel.font.lineHeight;
+ CGSize size = [((EntryElement *)el).title sizeWithFont:[UIFont systemFontOfSize:fontSize] forWidth:CGFLOAT_MAX lineBreakMode:UILineBreakModeWordWrap] ;
+ if (size.width>titleWidth)
+ titleWidth = size.width;
+ }
+ }
+
+ CGFloat separator = titleWidth > 0 ? 20 : 0;
+ _entryElement.parentSection.entryPosition = CGRectMake(titleWidth+separator,11,totalWidth-titleWidth-22-separator,24);
+ }
+
+ return _entryElement.parentSection.entryPosition;
+}
+
+- (void)prepareForElement:(EntryElement *)element inTableView:(QuickDialogTableView *)tableView{
+ self.textLabel.text = element.title;
+
+ _quickformTableView = tableView;
+ _entryElement = element;
+ [self recalculatePositioning];
+ _textField.text = _entryElement.textValue;
+ _textField.placeholder = _entryElement.placeholder;
+ _textField.secureTextEntry = _entryElement.isPassword;
+ if (_entryElement.hiddenToolbar){
+ _textField.inputAccessoryView = nil;
+ } else {
+ [self createActionBar];
+ }
+}
+
+-(void)recalculatePositioning {
+ _entryElement.parentSection.entryPosition = CGRectZero;
+ _textField.frame = [self calculateFrameForEntryElement];
+}
+
+- (void)prepareForReuse {
+ _quickformTableView = nil;
+ _entryElement = nil;
+}
+
+- (void)textFieldEditingChanged:(UITextField *)textFieldEditingChanged {
+ _entryElement.textValue = _textField.text;
+}
+
+- (void)textFieldDidBeginEditing:(UITextField *)textField {
+ UIReturnKeyType returnType = ([self findNextElementToFocusOn]!=nil) ? UIReturnKeyNext : UIReturnKeyDone;
+ _textField.returnKeyType = returnType;
+ _quickformTableView.selectedCell = self;
+}
+
+
+- (void)setSelected:(BOOL)selected {
+ [super setSelected:selected];
+ if (selected==YES){
+ [_textField becomeFirstResponder];
+ }
+}
+
+- (void)textFieldDidEndEditing:(UITextField *)textField {
+ _entryElement.textValue = _textField.text;
+}
+
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+ [_textField resignFirstResponder];
+
+ EntryElement *element = [self findNextElementToFocusOn];
+ if (element!=nil){
+ UITableViewCell *cell = [_quickformTableView cellForElement:element];
+ if (cell!=nil){
+ [cell becomeFirstResponder];
+ }
+ }
+ return YES;
+}
+
+- (void) previousNextDelegate:(UISegmentedControl *)control {
+ EntryElement *element;
+ if (control.selectedSegmentIndex == 1){
+ element = [self findNextElementToFocusOn];
+
+ } else {
+ element = [self findPreviousElementToFocusOn];
+ }
+ if (element!=nil){
+ UITableViewCell *cell = [_quickformTableView cellForElement:element];
+ if (cell!=nil){
+ [cell becomeFirstResponder];
+ }
+ }
+
+}
+
+
+- (BOOL)textFieldMustReturn:(UITextField *)textField {
+ [_textField resignFirstResponder];
+ return NO;
+}
+
+- (BOOL)becomeFirstResponder {
+ [_textField becomeFirstResponder];
+ return YES;
+}
+
+- (BOOL)resignFirstResponder {
+ [_textField resignFirstResponder];
+ return YES;
+}
+
+- (EntryElement *)findPreviousElementToFocusOn {
+ EntryElement *previousElement = nil;
+ for (Element* e in _entryElement.parentSection.elements){
+ if (e == _entryElement) {
+ return previousElement;
+ }
+ else if ([e isKindOfClass:[EntryElement class]]){
+ previousElement = (EntryElement *)e;
+ }
+ }
+ return nil;
+}
+
+- (EntryElement *)findNextElementToFocusOn {
+ BOOL foundSelf = NO;
+ for (Element* e in _entryElement.parentSection.elements){
+ if (e == _entryElement) {
+ foundSelf = YES;
+ }
+ else if (foundSelf && [e isKindOfClass:[EntryElement class]]){
+ return (EntryElement *) e;
+ }
+ }
+ return nil;
+}
+
+
+@end
24 quickdialog/FloatElement.h
@@ -0,0 +1,24 @@
+//
+// Created by escoz on 7/11/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+
+@class Element;
+@class LabelElement;
+
+
+@interface FloatElement : LabelElement {
+
+ float _floatValue;
+}
+
+@property(nonatomic, assign) float floatValue;
+
+
+- (FloatElement *)initWithTitle:(NSString *)string value:(float)value;
+- (Element *)initWithValue:(float)value;
+@end
63 quickdialog/FloatElement.m
@@ -0,0 +1,63 @@
+//
+// Created by escoz on 7/11/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "Element.h"
+#import "LabelElement.h"
+#import "FloatElement.h"
+#import "QuickDialogTableView.h"
+
+@implementation FloatElement
+
+@synthesize floatValue = _floatValue;
+
+- (FloatElement *)initWithTitle:(NSString *)title value:(float)value {
+ self = [super initWithTitle:title Value:nil] ;
+ _floatValue = value;
+ return self;
+}
+
+
+- (Element *)initWithValue:(float)value {
+ self = [super init];
+ _floatValue = value;
+
+ return self;
+}
+
+- (void)fetchValueIntoObject:(id)obj {
+ if (_key==nil)
+ return;
+ [obj setValue:[NSNumber numberWithFloat:_floatValue] forKey:_key];
+}
+
+- (CGFloat)calculateSliderWidth:(QuickDialogTableView *)view cell:(UITableViewCell *)cell {
+ if (_title==nil)
+ return view.contentSize.width-40;
+
+ return view.contentSize.width - [cell.textLabel.text sizeWithFont:[UIFont boldSystemFontOfSize:17]].width - 50;
+}
+
+- (void)valueChanged:(UISlider *)slider {
+ _floatValue = slider.value;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [super getCellForTableView:tableView controller:controller];
+
+ UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, [self calculateSliderWidth:tableView cell:cell], 20)];
+ [slider addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
+
+ slider.value = _floatValue;
+ cell.accessoryView = slider;
+ return cell;
+}
+
+
+
+
+
+@end
26 quickdialog/LabelElement.h
@@ -0,0 +1,26 @@
+//
+// Created by escoz on 7/7/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class Element;
+@class RootElement;
+
+@interface LabelElement : RootElement {
+
+@protected
+ NSString *_value;
+ UIImage *_image;
+}
+
+@property(nonatomic, strong) UIImage *image;
+@property(nonatomic, strong) NSString *value;
+
+
+- (LabelElement *)initWithTitle:(NSString *)string Value:(NSString *)value;
+@end
46 quickdialog/LabelElement.m
@@ -0,0 +1,46 @@
+//
+// Created by escoz on 7/7/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import "Element.h"
+#import "LabelElement.h"
+#import "QuickDialogController.h"
+#import "RootElement.h"
+
+@implementation LabelElement
+
+@synthesize image = _image;
+@synthesize value = _value;
+
+
+- (LabelElement *)initWithTitle:(NSString *)title Value:(NSString *)value {
+ self = [super init];
+ _title = title;
+ _value = value;
+ return self;
+}
+
+- (UITableViewCell *)getCellForTableView:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller {
+ UITableViewCell *cell = [super getCellForTableView:tableView controller:controller];
+ cell.accessoryType = UITableViewCellAccessoryNone;
+ cell.selectionStyle = UITableViewCellSelectionStyleNone;
+
+ cell.textLabel.text = _title;
+ cell.detailTextLabel.text = _value;
+ cell.imageView.image = _image;
+ cell.accessoryView = nil;
+ cell.accessoryType = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone;
+ cell.selectionStyle = self.sections!= nil || self.controllerAction!=nil ? UITableViewCellSelectionStyleBlue: UITableViewCellSelectionStyleNone;
+
+ return cell;
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)path {
+ [super selected:tableView controller:controller indexPath:path];
+}
+
+
+@end
18 quickdialog/MapElement.h
@@ -0,0 +1,18 @@
+//
+// Created by escoz on 7/12/11.
+//
+
+#import <Foundation/Foundation.h>
+#import <CoreLocation/CoreLocation.h>
+
+@class RootElement;
+
+
+@interface MapElement : RootElement {
+
+@protected
+ CLLocationCoordinate2D _coordinate;
+}
+
+- (MapElement *)initWithTitle:(NSString *)string coordinate:(CLLocationCoordinate2D)param;
+@end
30 quickdialog/MapElement.m
@@ -0,0 +1,30 @@
+//
+// Created by escoz on 7/12/11.
+//
+// To change this template use File | Settings | File Templates.
+//
+
+
+#import <CoreLocation/CoreLocation.h>
+#import "RootElement.h"
+#import "MapElement.h"
+#import "MapViewController.h"
+#import "QuickDialogController.h"
+
+
+@implementation MapElement
+
+- (MapElement *)initWithTitle:(NSString *)title coordinate:(CLLocationCoordinate2D)coordinate {
+ self = [super init];
+ _title = title;
+ _coordinate = coordinate;
+
+ return self;
+}
+
+- (void)selected:(QuickDialogTableView *)tableView controller:(QuickDialogController *)controller indexPath:(NSIndexPath *)path {
+ MapViewController *mapController = [[MapViewController alloc] initWithTitle:_title coordinate:_coordinate];
+ [controller displayViewController:mapController];
+
+}
+@end
24 quickdialog/MapViewController.h
@@ -0,0 +1,24 @@
+//
+// Created by escoz