sketchup-api-stubs 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +569 -517
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +356 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +459 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -449
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -406
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -317
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -458
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -255
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -834
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -1,269 +1,269 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # {UI::Notification} objects allows you to show native notifications in the
5
- # desktop. Notifications can have a message, icon and accept and/or dismiss
6
- # buttons with callback blocks.
7
- #
8
- # @example
9
- # # For consistency, the accept (yes) and the dismiss (no) buttons
10
- # # are always displayed in the same order.
11
- # message = "A new version of pizza is available. Install now?"
12
- # @notification = UI::Notification.new(sketchup_extension, message)
13
- # @notification.on_accept("Pizza!") { puts "Pizza" }
14
- # @notification.on_dismiss("No thanks") { puts "No pizza" }
15
- # @notification.show
16
- #
17
- # # The two options are however not treated differently by SketchUp and can
18
- # # also be used for questions with no strict yes/no answer.
19
- # message = "Pizza clashes with health. Select which one to keep."
20
- # @notification = UI::Notification.new(sketchup_extension, message)
21
- # @notification.on_accept("Pizza") { puts "Pizza" }
22
- # @notification.on_dismiss("Health") { puts "Salad" }
23
- # @notification.show
24
- #
25
- # @version SketchUp 2017
26
- class UI::Notification
27
-
28
- # Instance Methods
29
-
30
- # Gets the icon name, this is the path that will be used to get the icon from
31
- # the file system path.
32
- #
33
- # @example
34
- # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
35
- # "Icon Tooltip")
36
- # puts "Icon Name: #{@notification.icon_name}"
37
- # @notification.show
38
- #
39
- # @return [String]
40
- #
41
- # @version SketchUp 2017
42
- def icon_name
43
- end
44
-
45
- # Sets the icon path, this icon will be loaded from the path give, the path
46
- # has to be a local filesystem path.
47
- #
48
- # @example
49
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
50
- # @notification.icon_name = "/path/to/icon"
51
- # @notification.show
52
- #
53
- # @param [String] icon_name
54
- # String providing the icon filesystem path.
55
- #
56
- # @return [Boolean]
57
- #
58
- # @version SketchUp 2017
59
- def icon_name=(icon_name)
60
- end
61
-
62
- # Gets the icon Tooltip, this is the string that appear when the mouse is over
63
- # the icon.
64
- #
65
- # @example
66
- # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
67
- # "Icon Tooltip")
68
- # puts "Tooltip: #{@notification.icon_tooltip}"
69
- # @notification.show
70
- #
71
- # @return [String]
72
- #
73
- # @version SketchUp 2017
74
- def icon_tooltip
75
- end
76
-
77
- # Sets the icon Tooltip, this string will appear when the mouse is over the
78
- # icon.
79
- #
80
- # @example
81
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
82
- # @notification.icon_tooltip = "icon Tooltip"
83
- # @notification.show
84
- #
85
- # @param [String] icon_tooltip
86
- # String providing the new icon Tooltip.
87
- #
88
- # @return [Boolean]
89
- #
90
- # @version SketchUp 2017
91
- def icon_tooltip=(icon_tooltip)
92
- end
93
-
94
- # Creates a new {UI::Notification} object.
95
- #
96
- # @bug Prior to SketchUp 2018 messages could only be 3 lines long on Windows
97
- # and 2 lines on Mac. Now the notification expands to fit its content.
98
- #
99
- # @bug Prior to SketchUp 2021.1 SketchUp could crash if the {UI::Notification} object is garbaged
100
- # collected while it has notifications displayed on the screen. This could happen if the
101
- # {UI::Notification} object was assigned to a local variable. The local variable would go out of
102
- # scope and the garbage collector might collect it before the callbacks are invoked.
103
- #
104
- # @example
105
- # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
106
- # "Icon Tooltip")
107
- # @notification.show
108
- #
109
- # @note In order to insert line breaks into the message you need to use +\\r\\n+.
110
- #
111
- # @param [SketchupExtension] sketchup_extension
112
- # {SketchupExtension} instance used to identify
113
- # the source of the notification.
114
- #
115
- # @param [String] message
116
- # Message to display.
117
- #
118
- # @param [String] icon_name
119
- # Path to an icon to display along with the message.
120
- #
121
- # @param [String] icon_tooltip
122
- # Tooltip for the icon.
123
- #
124
- # @return [UI::Notification]
125
- #
126
- # @version SketchUp 2017
127
- def initialize(sketchup_extension, message = nil, icon_name = nil, icon_tooltip = nil)
128
- end
129
-
130
- # Gets the message as string.
131
- #
132
- # @example
133
- # @notification = UI::Notification.new(sketchup_extension)
134
- # puts "This is the current message: #{@notification.message}"
135
- # @notification.show
136
- #
137
- # @return [String]
138
- #
139
- # @version SketchUp 2017
140
- def message
141
- end
142
-
143
- # Sets a new message. Notifications are meant for quick and brief messages.
144
- # These message disappear automatically after a short while if they are not
145
- # interacted with.
146
- #
147
- # @example
148
- # @notification = UI::Notification.new(sketchup_extension)
149
- # @notification.message = "Hello world"
150
- # @notification.show
151
- #
152
- # @note In order to insert line breaks into the message you need to use +\\r\\n+.
153
- #
154
- # @param [String] message
155
- # String providing the new message.
156
- #
157
- # @return [Boolean]
158
- #
159
- # @version SketchUp 2017
160
- def message=(message)
161
- end
162
-
163
- # Shows a button in the notification with the given title and callback block,
164
- # both arguments are required.
165
- #
166
- # @bug Prior to SketchUp 2019 both the accept and dismiss buttons were
167
- # displayed, even if only one had been implemented.
168
- #
169
- # @example
170
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
171
- # @notification.on_accept("Accept") do |notification, title|
172
- # puts "The user pressed [#{title}] with message #{notification.message}"
173
- # end
174
- # @notification.show
175
- #
176
- # @param [String] title
177
- # Sets the title of the button.
178
- #
179
- # @param [Proc] block
180
- # Sets the action callback, this will be called when
181
- # the user clicks on the dismiss button.
182
- #
183
- # @raise [RuntimeError] When calling on_accept when the notification has
184
- # already been shown.
185
- #
186
- # @return [Boolean]
187
- #
188
- # @version SketchUp 2017
189
- def on_accept(title, block)
190
- end
191
-
192
- # Returns the accept's button title.
193
- #
194
- # @example
195
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
196
- # @notification.on_accept("Accept") do |notification, title|
197
- # puts "The user pressed #{notification.on_accept_title}"
198
- # end
199
- # @notification.show
200
- #
201
- # @return [String]
202
- #
203
- # @version SketchUp 2017
204
- def on_accept_title
205
- end
206
-
207
- # Shows a button in the notification with the given title and callback block.
208
- # Both arguments are required. This callback is only called if you press the
209
- # Dismiss button, not when the time runs out and the notification automatically
210
- # disappears.
211
- #
212
- # @bug Prior to SketchUp 2019 both the accept and dismiss buttons were
213
- # displayed, even if only one had been implemented.
214
- #
215
- # @example
216
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
217
- # @notification.on_dismiss("Close") do |notification, title|
218
- # puts "The user pressed [#{title}] with message #{notification.message}"
219
- # end
220
- # @notification.show
221
- #
222
- # @param [String] title
223
- # Sets the title of the button.
224
- #
225
- # @param [Proc] block
226
- # Sets the action callback, this will be called when
227
- # the user clicks on the dismiss button.
228
- #
229
- # @raise [RuntimeError] When calling on_dismiss when the notification has
230
- # already been shown.
231
- #
232
- # @return [Boolean]
233
- #
234
- # @version SketchUp 2017
235
- def on_dismiss(title, block)
236
- end
237
-
238
- # Returns the dismiss's button title.
239
- #
240
- # @example
241
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
242
- # @notification.on_dismiss("Close") do |notification, title|
243
- # puts "The user pressed #{notification.on_dismiss_title}"
244
- # end
245
- # @notification.show
246
- #
247
- # @return [String]
248
- #
249
- # @version SketchUp 2017
250
- def on_dismiss_title
251
- end
252
-
253
- # Shows the notification. If not interacted with, the notification will
254
- # disappear without calling any callbacks.
255
- #
256
- # @bug If assigned to a local variable SketchUp might crash prior to SketchUp 2021.1.
257
- # See {#initialize} for more details.
258
- #
259
- # @example
260
- # @notification = UI::Notification.new(sketchup_extension, "Hello world")
261
- # @notification.show
262
- #
263
- # @return [Boolean]
264
- #
265
- # @version SketchUp 2017
266
- def show
267
- end
268
-
269
- end
1
+ # Copyright:: Copyright 2024 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # {UI::Notification} objects allows you to show native notifications in the
5
+ # desktop. Notifications can have a message, icon and accept and/or dismiss
6
+ # buttons with callback blocks.
7
+ #
8
+ # @example
9
+ # # For consistency, the accept (yes) and the dismiss (no) buttons
10
+ # # are always displayed in the same order.
11
+ # message = "A new version of pizza is available. Install now?"
12
+ # @notification = UI::Notification.new(sketchup_extension, message)
13
+ # @notification.on_accept("Pizza!") { puts "Pizza" }
14
+ # @notification.on_dismiss("No thanks") { puts "No pizza" }
15
+ # @notification.show
16
+ #
17
+ # # The two options are however not treated differently by SketchUp and can
18
+ # # also be used for questions with no strict yes/no answer.
19
+ # message = "Pizza clashes with health. Select which one to keep."
20
+ # @notification = UI::Notification.new(sketchup_extension, message)
21
+ # @notification.on_accept("Pizza") { puts "Pizza" }
22
+ # @notification.on_dismiss("Health") { puts "Salad" }
23
+ # @notification.show
24
+ #
25
+ # @version SketchUp 2017
26
+ class UI::Notification
27
+
28
+ # Instance Methods
29
+
30
+ # Gets the icon name, this is the path that will be used to get the icon from
31
+ # the file system path.
32
+ #
33
+ # @example
34
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
35
+ # "Icon Tooltip")
36
+ # puts "Icon Name: #{@notification.icon_name}"
37
+ # @notification.show
38
+ #
39
+ # @return [String]
40
+ #
41
+ # @version SketchUp 2017
42
+ def icon_name
43
+ end
44
+
45
+ # Sets the icon path, this icon will be loaded from the path give, the path
46
+ # has to be a local filesystem path.
47
+ #
48
+ # @example
49
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
50
+ # @notification.icon_name = "/path/to/icon"
51
+ # @notification.show
52
+ #
53
+ # @param [String] icon_name
54
+ # String providing the icon filesystem path.
55
+ #
56
+ # @return [Boolean]
57
+ #
58
+ # @version SketchUp 2017
59
+ def icon_name=(icon_name)
60
+ end
61
+
62
+ # Gets the icon Tooltip, this is the string that appear when the mouse is over
63
+ # the icon.
64
+ #
65
+ # @example
66
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
67
+ # "Icon Tooltip")
68
+ # puts "Tooltip: #{@notification.icon_tooltip}"
69
+ # @notification.show
70
+ #
71
+ # @return [String]
72
+ #
73
+ # @version SketchUp 2017
74
+ def icon_tooltip
75
+ end
76
+
77
+ # Sets the icon Tooltip, this string will appear when the mouse is over the
78
+ # icon.
79
+ #
80
+ # @example
81
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
82
+ # @notification.icon_tooltip = "icon Tooltip"
83
+ # @notification.show
84
+ #
85
+ # @param [String] icon_tooltip
86
+ # String providing the new icon Tooltip.
87
+ #
88
+ # @return [Boolean]
89
+ #
90
+ # @version SketchUp 2017
91
+ def icon_tooltip=(icon_tooltip)
92
+ end
93
+
94
+ # Creates a new {UI::Notification} object.
95
+ #
96
+ # @bug Prior to SketchUp 2018 messages could only be 3 lines long on Windows
97
+ # and 2 lines on Mac. Now the notification expands to fit its content.
98
+ #
99
+ # @bug Prior to SketchUp 2021.1 SketchUp could crash if the {UI::Notification} object is garbaged
100
+ # collected while it has notifications displayed on the screen. This could happen if the
101
+ # {UI::Notification} object was assigned to a local variable. The local variable would go out of
102
+ # scope and the garbage collector might collect it before the callbacks are invoked.
103
+ #
104
+ # @example
105
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world", "/path/to/icon",
106
+ # "Icon Tooltip")
107
+ # @notification.show
108
+ #
109
+ # @note In order to insert line breaks into the message you need to use +\\r\\n+.
110
+ #
111
+ # @param [SketchupExtension] sketchup_extension
112
+ # {SketchupExtension} instance used to identify
113
+ # the source of the notification.
114
+ #
115
+ # @param [String] message
116
+ # Message to display.
117
+ #
118
+ # @param [String] icon_name
119
+ # Path to an icon to display along with the message.
120
+ #
121
+ # @param [String] icon_tooltip
122
+ # Tooltip for the icon.
123
+ #
124
+ # @return [UI::Notification]
125
+ #
126
+ # @version SketchUp 2017
127
+ def initialize(sketchup_extension, message = nil, icon_name = nil, icon_tooltip = nil)
128
+ end
129
+
130
+ # Gets the message as string.
131
+ #
132
+ # @example
133
+ # @notification = UI::Notification.new(sketchup_extension)
134
+ # puts "This is the current message: #{@notification.message}"
135
+ # @notification.show
136
+ #
137
+ # @return [String]
138
+ #
139
+ # @version SketchUp 2017
140
+ def message
141
+ end
142
+
143
+ # Sets a new message. Notifications are meant for quick and brief messages.
144
+ # These message disappear automatically after a short while if they are not
145
+ # interacted with.
146
+ #
147
+ # @example
148
+ # @notification = UI::Notification.new(sketchup_extension)
149
+ # @notification.message = "Hello world"
150
+ # @notification.show
151
+ #
152
+ # @note In order to insert line breaks into the message you need to use +\\r\\n+.
153
+ #
154
+ # @param [String] message
155
+ # String providing the new message.
156
+ #
157
+ # @return [Boolean]
158
+ #
159
+ # @version SketchUp 2017
160
+ def message=(message)
161
+ end
162
+
163
+ # Shows a button in the notification with the given title and callback block,
164
+ # both arguments are required.
165
+ #
166
+ # @bug Prior to SketchUp 2019 both the accept and dismiss buttons were
167
+ # displayed, even if only one had been implemented.
168
+ #
169
+ # @example
170
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
171
+ # @notification.on_accept("Accept") do |notification, title|
172
+ # puts "The user pressed [#{title}] with message #{notification.message}"
173
+ # end
174
+ # @notification.show
175
+ #
176
+ # @param [String] title
177
+ # Sets the title of the button.
178
+ #
179
+ # @param [Proc] block
180
+ # Sets the action callback, this will be called when
181
+ # the user clicks on the dismiss button.
182
+ #
183
+ # @raise [RuntimeError] When calling on_accept when the notification has
184
+ # already been shown.
185
+ #
186
+ # @return [Boolean]
187
+ #
188
+ # @version SketchUp 2017
189
+ def on_accept(title, block)
190
+ end
191
+
192
+ # Returns the accept's button title.
193
+ #
194
+ # @example
195
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
196
+ # @notification.on_accept("Accept") do |notification, title|
197
+ # puts "The user pressed #{notification.on_accept_title}"
198
+ # end
199
+ # @notification.show
200
+ #
201
+ # @return [String]
202
+ #
203
+ # @version SketchUp 2017
204
+ def on_accept_title
205
+ end
206
+
207
+ # Shows a button in the notification with the given title and callback block.
208
+ # Both arguments are required. This callback is only called if you press the
209
+ # Dismiss button, not when the time runs out and the notification automatically
210
+ # disappears.
211
+ #
212
+ # @bug Prior to SketchUp 2019 both the accept and dismiss buttons were
213
+ # displayed, even if only one had been implemented.
214
+ #
215
+ # @example
216
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
217
+ # @notification.on_dismiss("Close") do |notification, title|
218
+ # puts "The user pressed [#{title}] with message #{notification.message}"
219
+ # end
220
+ # @notification.show
221
+ #
222
+ # @param [String] title
223
+ # Sets the title of the button.
224
+ #
225
+ # @param [Proc] block
226
+ # Sets the action callback, this will be called when
227
+ # the user clicks on the dismiss button.
228
+ #
229
+ # @raise [RuntimeError] When calling on_dismiss when the notification has
230
+ # already been shown.
231
+ #
232
+ # @return [Boolean]
233
+ #
234
+ # @version SketchUp 2017
235
+ def on_dismiss(title, block)
236
+ end
237
+
238
+ # Returns the dismiss's button title.
239
+ #
240
+ # @example
241
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
242
+ # @notification.on_dismiss("Close") do |notification, title|
243
+ # puts "The user pressed #{notification.on_dismiss_title}"
244
+ # end
245
+ # @notification.show
246
+ #
247
+ # @return [String]
248
+ #
249
+ # @version SketchUp 2017
250
+ def on_dismiss_title
251
+ end
252
+
253
+ # Shows the notification. If not interacted with, the notification will
254
+ # disappear without calling any callbacks.
255
+ #
256
+ # @bug If assigned to a local variable SketchUp might crash prior to SketchUp 2021.1.
257
+ # See {#initialize} for more details.
258
+ #
259
+ # @example
260
+ # @notification = UI::Notification.new(sketchup_extension, "Hello world")
261
+ # @notification.show
262
+ #
263
+ # @return [Boolean]
264
+ #
265
+ # @version SketchUp 2017
266
+ def show
267
+ end
268
+
269
+ end