| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package fyne
- // CanvasObject describes any graphical object that can be added to a canvas.
- // Objects have a size and position that can be controlled through this API.
- // MinSize is used to determine the minimum size which this object should be displayed.
- // An object will be visible by default but can be hidden with Hide() and re-shown with Show().
- //
- // Note: If this object is controlled as part of a Layout you should not call
- // Resize(Size) or Move(Position).
- type CanvasObject interface {
- // geometry
- // MinSize returns the minimum size this object needs to be drawn.
- MinSize() Size
- // Move moves this object to the given position relative to its parent.
- // This should only be called if your object is not in a container with a layout manager.
- Move(Position)
- // Position returns the current position of the object relative to its parent.
- Position() Position
- // Resize resizes this object to the given size.
- // This should only be called if your object is not in a container with a layout manager.
- Resize(Size)
- // Size returns the current size of this object.
- Size() Size
- // visibility
- // Hide hides this object.
- Hide()
- // Visible returns whether this object is visible or not.
- Visible() bool
- // Show shows this object.
- Show()
- // Refresh must be called if this object should be redrawn because its inner state changed.
- Refresh()
- }
- // Disableable describes any CanvasObject that can be disabled.
- // This is primarily used with objects that also implement the Tappable interface.
- type Disableable interface {
- Enable()
- Disable()
- Disabled() bool
- }
- // DoubleTappable describes any CanvasObject that can also be double tapped.
- type DoubleTappable interface {
- DoubleTapped(*PointEvent)
- }
- // Draggable indicates that a CanvasObject can be dragged.
- // This is used for any item that the user has indicated should be moved across the screen.
- type Draggable interface {
- Dragged(*DragEvent)
- DragEnd()
- }
- // Focusable describes any CanvasObject that can respond to being focused.
- // It will receive the FocusGained and FocusLost events appropriately.
- // When focused it will also have TypedRune called as text is input and
- // TypedKey called when other keys are pressed.
- //
- // Note: You must not change canvas state (including overlays or focus) in FocusGained or FocusLost
- // or you would end up with a dead-lock.
- type Focusable interface {
- // FocusGained is a hook called by the focus handling logic after this object gained the focus.
- FocusGained()
- // FocusLost is a hook called by the focus handling logic after this object lost the focus.
- FocusLost()
- // TypedRune is a hook called by the input handling logic on text input events if this object is focused.
- TypedRune(rune)
- // TypedKey is a hook called by the input handling logic on key events if this object is focused.
- TypedKey(*KeyEvent)
- }
- // Scrollable describes any CanvasObject that can also be scrolled.
- // This is mostly used to implement the widget.ScrollContainer.
- type Scrollable interface {
- Scrolled(*ScrollEvent)
- }
- // SecondaryTappable describes a CanvasObject that can be right-clicked or long-tapped.
- type SecondaryTappable interface {
- TappedSecondary(*PointEvent)
- }
- // Shortcutable describes any CanvasObject that can respond to shortcut commands (quit, cut, copy, and paste).
- type Shortcutable interface {
- TypedShortcut(Shortcut)
- }
- // Tabbable describes any object that needs to accept the Tab key presses.
- //
- // Since: 2.1
- type Tabbable interface {
- // AcceptsTab() is a hook called by the key press handling logic.
- // If it returns true then the Tab key events will be sent using TypedKey.
- AcceptsTab() bool
- }
- // Tappable describes any CanvasObject that can also be tapped.
- // This should be implemented by buttons etc that wish to handle pointer interactions.
- type Tappable interface {
- Tapped(*PointEvent)
- }
|