Ardour  8.12
mouse_cursors.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012-2015 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2014-2017 Robin Gareus <robin@gareus.org>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 #ifndef __gtk2_ardour_mouse_cursors__
21 #define __gtk2_ardour_mouse_cursors__
22 
30 {
31 public:
34 
35  void set_cursor_set (const std::string& name);
36  std::string cursor_set() const { return _cursor_set; }
37 
75 
76  /* This cursor is not intended to be used directly, it just
77  serves as an out-of-bounds value when we need to indicate
78  "no cursor". NULL/0 doesn't work for this, because it
79  is actually a valid value for a Gdk::Cursor - it indicates
80  "use the parent window's cursor"
81  */
82 
83  static bool is_invalid (Gdk::Cursor* c) { if (!_invalid) { create_invalid(); } return c == _invalid; }
84  static Gdk::Cursor* invalid_cursor() { if (!_invalid) { create_invalid(); } return _invalid; }
85 
86  private:
87  std::string _cursor_set;
88  void drop_all ();
89 
90  Gdk::Cursor* make_cursor (const char* name, int hotspot_x = 0, int hotspot_y = 0);
92  static void create_invalid ();
93 };
94 
95 #endif /* __gtk2_ardour_mouse_cursors__ */
Gdk::Cursor * right_side_trim
Definition: mouse_cursors.h:41
Gdk::Cursor * midi_resize
Definition: mouse_cursors.h:58
Gdk::Cursor * resize_bottom_left
Definition: mouse_cursors.h:71
Gdk::Cursor * cross_hair
Definition: mouse_cursors.h:38
static void create_invalid()
Gdk::Cursor * transparent
Definition: mouse_cursors.h:63
Gdk::Cursor * fader
Definition: mouse_cursors.h:55
Gdk::Cursor * fade_in
Definition: mouse_cursors.h:47
Gdk::Cursor * left_side_trim
Definition: mouse_cursors.h:43
Gdk::Cursor * grabber
Definition: mouse_cursors.h:50
Gdk::Cursor * anchored_left_side_trim
Definition: mouse_cursors.h:44
Gdk::Cursor * resize_top_left
Definition: mouse_cursors.h:65
Gdk::Cursor * resize_top_right
Definition: mouse_cursors.h:67
Gdk::Cursor * left_side_trim_right_only
Definition: mouse_cursors.h:46
Gdk::Cursor * midi_pencil
Definition: mouse_cursors.h:56
Gdk::Cursor * resize_bottom_right
Definition: mouse_cursors.h:69
void set_cursor_set(const std::string &name)
Gdk::Cursor * wait
Definition: mouse_cursors.h:61
Gdk::Cursor * zoom_out
Definition: mouse_cursors.h:53
Gdk::Cursor * expand_up_down
Definition: mouse_cursors.h:74
Gdk::Cursor * zoom_in
Definition: mouse_cursors.h:52
std::string cursor_set() const
Definition: mouse_cursors.h:36
Gdk::Cursor * resize_right
Definition: mouse_cursors.h:68
Gdk::Cursor * scissors
Definition: mouse_cursors.h:39
Gdk::Cursor * anchored_right_side_trim
Definition: mouse_cursors.h:42
Gdk::Cursor * expand_left_right
Definition: mouse_cursors.h:73
Gdk::Cursor * resize_left
Definition: mouse_cursors.h:64
void drop_all()
Gdk::Cursor * grabber_note
Definition: mouse_cursors.h:51
Gdk::Cursor * make_cursor(const char *name, int hotspot_x=0, int hotspot_y=0)
Gdk::Cursor * fade_out
Definition: mouse_cursors.h:48
Gdk::Cursor * midi_erase
Definition: mouse_cursors.h:59
Gdk::Cursor * resize_top
Definition: mouse_cursors.h:66
Gdk::Cursor * timebar
Definition: mouse_cursors.h:62
static bool is_invalid(Gdk::Cursor *c)
Definition: mouse_cursors.h:83
static Gdk::Cursor * _invalid
Definition: mouse_cursors.h:91
std::string _cursor_set
Definition: mouse_cursors.h:87
Gdk::Cursor * midi_select
Definition: mouse_cursors.h:57
Gdk::Cursor * selector
Definition: mouse_cursors.h:49
Gdk::Cursor * up_down
Definition: mouse_cursors.h:60
Gdk::Cursor * resize_bottom
Definition: mouse_cursors.h:70
Gdk::Cursor * move
Definition: mouse_cursors.h:72
Gdk::Cursor * time_fx
Definition: mouse_cursors.h:54
Gdk::Cursor * trimmer
Definition: mouse_cursors.h:40
static Gdk::Cursor * invalid_cursor()
Definition: mouse_cursors.h:84
Gdk::Cursor * right_side_trim_left_only
Definition: mouse_cursors.h:45
GtkImageIconNameData name
Definition: gtkimage.h:6