rofi  1.5.1
widget.h
Go to the documentation of this file.
1 /*
2  * rofi
3  *
4  * MIT/X11 License
5  * Copyright © 2013-2017 Qball Cow <qball@gmpclient.org>
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining
8  * a copy of this software and associated documentation files (the
9  * "Software"), to deal in the Software without restriction, including
10  * without limitation the rights to use, copy, modify, merge, publish,
11  * distribute, sublicense, and/or sell copies of the Software, and to
12  * permit persons to whom the Software is furnished to do so, subject to
13  * the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be
16  * included in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25  *
26  */
27 
28 #ifndef ROFI_WIDGET_H
29 #define ROFI_WIDGET_H
30 #include <glib.h>
31 #include <cairo.h>
32 #include <xcb/xcb.h>
33 #include <xcb/xproto.h>
34 #include "keyb.h"
51 typedef struct _widget widget;
52 
56 typedef enum
57 {
72 } WidgetType;
73 
77 typedef enum
78 {
88 
99 typedef widget * ( *widget_find_mouse_target_cb )( widget *widget, WidgetType type, gint x, gint y );
100 
112 typedef WidgetTriggerActionResult ( *widget_trigger_action_cb )( widget *widget, guint action, gint x, gint y, void *user_data );
113 
115 #define WIDGET( a ) ( (widget *) ( a ) )
116 
126 int widget_intersect ( const widget *widget, int x, int y );
127 
135 void widget_move ( widget *widget, short x, short y );
136 
144 
151 gboolean widget_enabled ( widget *widget );
157 void widget_disable ( widget *widget );
163 void widget_enable ( widget *widget );
164 
171 void widget_draw ( widget *widget, cairo_t *d );
172 
178 void widget_free ( widget *wid );
179 
187 void widget_resize ( widget *widget, short w, short h );
188 
195 
202 
209 
216 
224 void widget_xy_to_relative ( widget *widget, gint *x, gint *y );
225 
232 void widget_update ( widget *widget );
239 void widget_queue_redraw ( widget *wid );
245 gboolean widget_need_redraw ( widget *wid );
246 
257 widget *widget_find_mouse_target ( widget *wid, WidgetType type, gint x, gint y );
258 
270 WidgetTriggerActionResult widget_trigger_action ( widget *wid, guint action, gint x, gint y );
271 
279 void widget_set_trigger_action_handler ( widget *wid, widget_trigger_action_cb cb, void *cb_data );
280 
290 gboolean widget_motion_notify ( widget *wid, gint x, gint y );
291 
299 int widget_get_desired_height ( widget *wid );
300 
308 int widget_get_desired_width ( widget *wid );
316 int widget_get_absolute_xpos ( widget *wid );
324 int widget_get_absolute_ypos ( widget *wid );
326 #endif // ROFI_WIDGET_H
WidgetType widget_type(widget *widget)
Definition: widget.c:106
WidgetType
Definition: widget.h:56
gboolean widget_need_redraw(widget *wid)
Definition: widget.c:434
void widget_update(widget *widget)
Definition: widget.c:411
WidgetTriggerActionResult(* widget_trigger_action_cb)(widget *widget, guint action, gint x, gint y, void *user_data)
Definition: widget.h:112
int widget_get_width(widget *widget)
Definition: widget.c:377
void widget_free(widget *wid)
Definition: widget.c:355
void widget_set_trigger_action_handler(widget *wid, widget_trigger_action_cb cb, void *cb_data)
Definition: widget.c:468
void widget_draw(widget *widget, cairo_t *d)
Definition: widget.c:140
void widget_disable(widget *widget)
Definition: widget.c:131
int widget_intersect(const widget *widget, int x, int y)
Definition: widget.c:68
void widget_move(widget *widget, short x, short y)
Definition: widget.c:98
void widget_xy_to_relative(widget *widget, gint *x, gint *y)
Definition: widget.c:402
void widget_resize(widget *widget, short w, short h)
Definition: widget.c:82
WidgetTriggerActionResult widget_trigger_action(widget *wid, guint action, gint x, gint y)
Definition: widget.c:460
void widget_queue_redraw(widget *wid)
Definition: widget.c:421
gboolean widget_enabled(widget *widget)
Definition: widget.c:114
struct _widget widget
Definition: widget.h:51
int widget_get_desired_width(widget *wid)
Definition: widget.c:566
WidgetTriggerActionResult
Definition: widget.h:77
void widget_enable(widget *widget)
Definition: widget.c:122
int widget_get_x_pos(widget *widget)
Definition: widget.c:387
int widget_get_absolute_xpos(widget *wid)
Definition: widget.c:577
gboolean widget_motion_notify(widget *wid, gint x, gint y)
Definition: widget.c:477
int widget_get_absolute_ypos(widget *wid)
Definition: widget.c:588
int widget_get_desired_height(widget *wid)
Definition: widget.c:556
widget * widget_find_mouse_target(widget *wid, WidgetType type, gint x, gint y)
Definition: widget.c:442
WidgetType type
int widget_get_y_pos(widget *widget)
Definition: widget.c:394
int widget_get_height(widget *widget)
Definition: widget.c:367