Class: Sketchup::AppObserver Abstract
| Relationships | |
| Inherits: | Object |
Overview
To implement this observer, create a Ruby class of this type, override the desired methods, and add an instance of the observer to the application class.
This observer interface is implemented to react to application events. This interface is often used to attach other observers to models as they are opened or started. This ensures that your observers are watching all open models.
For example, when one attaches a SelectionObserver, it is only
attached to the Selection collection of a given model. If a 2nd
model is opened, the new model's selection changes will not fire selection
callbacks unless you've attached a SelectionObserver to the new
model as well. By watching for #onNewModel, you can be sure to do so.
Instance Method Summary
-
#expectsStartupModelNotifications ⇒ Boolean
The #expectsStartupModelNotifications method is called to determine if the observer expects to receive #onNewModel and #onOpenModel calls for the models that are created or opened at SketchUp startup.
-
#onActivateModel(model) ⇒ nil
The #onActivateModel method is called when an open model is activated.
-
#onExtensionsLoaded
The #onExtensionsLoaded method is called when SketchUp has finished loading all extensions when the application starts.
-
#onNewModel(model) ⇒ nil
The #onNewModel method is called when the application creates a new, empty model.
-
#onOpenModel(model) ⇒ nil
The #onOpenModel method is called when the application opens an existing model.
-
#onQuit ⇒ nil
The #onQuit method is called when SketchUp closes.
-
#onUnloadExtension(extension_name) ⇒ nil
The #onUnloadExtension method is called when the user turns off a Ruby extension.
Instance Method Details
#expectsStartupModelNotifications ⇒ Boolean
Prior to SketchUp 2014, #onNewModel and #onOpenModel were
not being called for the startup models. This issue is now fixed but
observers still need to express their intent to receive these calls. This is
for back-compatibility with existing scripts which worked around these
missing calls by other means. For new code, this method should be implemented
and should return true.
The #expectsStartupModelNotifications method is called to determine if the
observer expects to receive #onNewModel and #onOpenModel calls for the
models that are created or opened at SketchUp startup. This includes the
empty initial model, a model opened via command line arguments, or
auto-restored models on Mac OS X.
#onActivateModel(model) ⇒ nil
The #onActivateModel method is called when an open model is activated. This
is relevant on Mac only which supports multiple documents to be opened
simultaneously.
#onExtensionsLoaded
The #onExtensionsLoaded method is called when SketchUp has finished loading
all extensions when the application starts.
#onNewModel(model) ⇒ nil
The #onNewModel method is called when the application creates a new, empty
model.
#onOpenModel(model) ⇒ nil
If a skp file is loaded via the command line or double-clicking on a skp in explorer (which is also is the command line) then this observer will not be called. The Ruby interpreter in SketchUp is initialized after command line processing so the observer won't be added in time to get the notification.
The #onOpenModel method is called when the application opens an existing
model.
#onQuit ⇒ nil
The #onQuit method is called when SketchUp closes. This is useful if you
need to clean up anything or store your application state upon close.
#onUnloadExtension(extension_name) ⇒ nil
The #onUnloadExtension method is called when the user turns off a Ruby
extension. This is useful for detecting if the user is deactivating
some critical set of observers, for example, so you can warn them
or cache your extension state.