return &_root;
}
+ void set_background_color (ArdourCanvas::Color);
+ ArdourCanvas::Color background_color() const { return _bg_color; }
+
/** Called when an item is being destroyed */
virtual void item_going_away (Item *, boost::optional<Rect>) {}
void item_shown_or_hidden (Item *);
static void set_tooltip_timeout (uint32_t msecs);
protected:
- void queue_draw_item_area (Item *, Rect);
-
- /** our root item */
- Root _root;
+ Root _root;
+ Color _bg_color;
static uint32_t tooltip_timeout_msecs;
+ void queue_draw_item_area (Item *, Rect);
virtual void pick_current_item (int state) = 0;
virtual void pick_current_item (Duple const &, int state) = 0;
bool get_mouse_position (Duple& winpos) const;
+ void set_single_exposure (bool s) { _single_exposure = s; }
+ bool single_exposure () { return _single_exposure; }
+
void re_enter ();
void start_tooltip_timeout (Item*);
void stop_tooltip_timeout ();
protected:
+ void on_size_allocate (Gtk::Allocation&);
bool on_scroll_event (GdkEventScroll *);
bool on_expose_event (GdkEventExpose *);
+ bool on_key_press_event (GdkEventKey *);
+ bool on_key_release_event (GdkEventKey *);
bool on_button_press_event (GdkEventButton *);
bool on_button_release_event (GdkEventButton* event);
bool on_motion_notify_event (GdkEventMotion *);
void item_going_away (Item *, boost::optional<Rect>);
bool send_leave_event (Item const *, double, double) const;
+ Cairo::RefPtr<Cairo::Surface> canvas_image;
+
/** Item currently chosen for event delivery based on pointer position */
Item * _current_item;
/** Item pending as _current_item */
Item * _grabbed_item;
/** the item that currently has key focus or 0 */
Item * _focused_item;
+
+ bool _single_exposure;
sigc::connection tooltip_timeout_connection;
Item* current_tooltip_item;