1 /* SPDX-License-Identifier: Zlib */ 2 3 #ifndef GIRARA_CALLBACKS_H 4 #define GIRARA_CALLBACKS_H 5 6 #include "macros.h" 7 #include "types.h" 8 #include <gtk/gtk.h> 9 10 /** 11 * Callback definition for an inputbar key press event handler 12 * 13 * @param widget The widget 14 * @param event Event 15 * @param data Custom data 16 * @return true if no error occurred 17 */ 18 typedef gboolean (*girara_callback_inputbar_key_press_event_t)(GtkWidget* widget, 19 GdkEventKey* event, void* data); 20 21 /** 22 * Callback definition for an inputbar key press event handler 23 * 24 * @param entry The inputbar 25 * @param data Custom data 26 * @return true if no error occurred 27 */ 28 typedef gboolean (*girara_callback_inputbar_activate_t)(GtkEntry* entry, 29 void* data); 30 31 /** 32 * Default callback for key press events in the view area 33 * 34 * @param widget The used widget 35 * @param event The occurred event 36 * @param session The used girara session 37 * @return TRUE No error occurred 38 * @return FALSE An error occurred 39 */ 40 gboolean girara_callback_view_key_press_event(GtkWidget* widget, GdkEventKey* event, 41 girara_session_t* session) GIRARA_VISIBLE; 42 43 /** 44 * Default callback when a button (typically a mouse button) has been pressed 45 * 46 * @param widget The used widget 47 * @param button The button that triggered the event 48 * @param session The used girara session 49 * @return true to stop other handlers from being invoked for the event. 50 * @return false to propagate the event further. 51 */ 52 gboolean girara_callback_view_button_press_event(GtkWidget* widget, 53 GdkEventButton* button, girara_session_t* session) GIRARA_VISIBLE; 54 55 /** 56 * Default callback when a button (typically a mouse button) has been released 57 * 58 * @param widget The used widget 59 * @param button The button that triggered the event 60 * @param session The used girara session 61 * @return true to stop other handlers from being invoked for the event. 62 * @return false to propagate the event further. 63 */ 64 gboolean girara_callback_view_button_release_event(GtkWidget* widget, 65 GdkEventButton* button, girara_session_t* session) GIRARA_VISIBLE; 66 67 /** 68 * Default callback when the pointer moves over the widget 69 * 70 * @param widget The used widget 71 * @param button The event motion that triggered the event 72 * @param session The used girara session 73 * @return true to stop other handlers from being invoked for the event. 74 * @return false to propagate the event further. 75 */ 76 gboolean girara_callback_view_button_motion_notify_event(GtkWidget* widget, 77 GdkEventMotion* button, girara_session_t* session) GIRARA_VISIBLE; 78 79 /** 80 * Default callback then a scroll event is triggered by the view 81 * 82 * @param widget The widget 83 * @param event The event motion 84 * @param session The girara session 85 * @return true to stop other handlers from being invoked for the event. 86 * @return false to propagate the event further. 87 */ 88 gboolean girara_callback_view_scroll_event(GtkWidget* widget, GdkEventScroll* event, 89 girara_session_t* session) GIRARA_VISIBLE; 90 91 /** 92 * Default callback if the inputbar gets activated 93 * 94 * @param entry The inputbar entry 95 * @param session The used girara session 96 * @return TRUE No error occurred 97 * @return FALSE An error occurred 98 */ 99 gboolean girara_callback_inputbar_activate(GtkEntry* entry, 100 girara_session_t* session) GIRARA_VISIBLE; 101 102 /** 103 * Default callback if an key in the input bar gets pressed 104 * 105 * @param widget The used widget 106 * @param event The occurred event 107 * @param session The used girara session 108 * @return TRUE No error occurred 109 * @return FALSE An error occurred 110 */ 111 gboolean girara_callback_inputbar_key_press_event(GtkWidget* widget, 112 GdkEventKey* event, girara_session_t* session) GIRARA_VISIBLE; 113 114 /** 115 * Default callback if the text of the input bar has changed 116 * 117 * @param widget The used widget 118 * @param session The used girara session 119 * @return TRUE No error occurred 120 * @return FALSE An error occurred 121 */ 122 gboolean girara_callback_inputbar_changed_event(GtkEditable* widget, 123 girara_session_t* session) GIRARA_VISIBLE; 124 125 #endif 126