ezgl  1.0.1
An Easy Graphics & GUI Library
callback.hpp
1 /*
2  * Copyright 2019-2022 University of Toronto
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * Authors: Mario Badr, Sameh Attia, Tanner Young-Schultz and Vaughn Betz
17  */
18 
19 #ifndef EZGL_CALLBACK_HPP
20 #define EZGL_CALLBACK_HPP
21 
22 #include "ezgl/application.hpp"
23 #include "ezgl/camera.hpp"
24 #include "ezgl/canvas.hpp"
25 #include "ezgl/control.hpp"
26 #include "ezgl/graphics.hpp"
27 
28 #include <iostream>
29 
30 // Mouse button used for panning (left button (1) - middle button (2) - right button (3))
31 #define PANNING_MOUSE_BUTTON 1
32 
33 namespace ezgl {
34 
35 /**** Callback functions for keyboard and mouse input, and for all the ezgl predefined buttons. *****/
36 
47 gboolean press_key(GtkWidget *widget, GdkEventKey *event, gpointer data);
48 
59 gboolean press_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data);
60 
71 gboolean release_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data);
72 
83 gboolean move_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data);
84 
95 gboolean scroll_mouse(GtkWidget *widget, GdkEvent *event, gpointer data);
96 
105 gboolean press_zoom_fit(GtkWidget *widget, gpointer data);
106 
115 gboolean press_zoom_in(GtkWidget *widget, gpointer data);
116 
125 gboolean press_zoom_out(GtkWidget *widget, gpointer data);
126 
135 gboolean press_up(GtkWidget *widget, gpointer data);
136 
145 gboolean press_down(GtkWidget *widget, gpointer data);
146 
155 gboolean press_left(GtkWidget *widget, gpointer data);
156 
165 gboolean press_right(GtkWidget *widget, gpointer data);
166 
175 gboolean press_proceed(GtkWidget *widget, gpointer data);
176 }
177 
178 #endif //EZGL_CALLBACK_HPP
A library for creating a graphical user interface.
Definition: application.hpp:40
gboolean press_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data)
React to mouse click event
gboolean move_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data)
React to mouse release event
gboolean scroll_mouse(GtkWidget *widget, GdkEvent *event, gpointer data)
React to scroll_event event
gboolean press_left(GtkWidget *widget, gpointer data)
React to the clicked up button.
gboolean press_up(GtkWidget *widget, gpointer data)
React to the clicked up button.
gboolean press_zoom_out(GtkWidget *widget, gpointer data)
React to the clicked zoom_out button.
gboolean press_key(GtkWidget *widget, GdkEventKey *event, gpointer data)
React to a keyboard press event.
gboolean press_down(GtkWidget *widget, gpointer data)
React to the clicked up button.
gboolean press_zoom_in(GtkWidget *widget, gpointer data)
React to the clicked zoom_in button.
gboolean press_zoom_fit(GtkWidget *widget, gpointer data)
React to the clicked zoom_fit button.
gboolean press_right(GtkWidget *widget, gpointer data)
React to the clicked up button.
gboolean release_mouse(GtkWidget *widget, GdkEventButton *event, gpointer data)
React to mouse release event
gboolean press_proceed(GtkWidget *widget, gpointer data)
React to the clicked proceed button.