sketchup-api-stubs 0.7.7 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → 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 -478
  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 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  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 +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  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 +387 -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 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  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 → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → 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 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  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 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  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 -425
  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 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  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 -405
  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 -327
  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 -112
  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 -318
  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 +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  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 -459
  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 -257
  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 -835
  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 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,269 +1,269 @@
1
- # Copyright:: Copyright 2021 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 [Block] 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 [Block] 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 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