rofi
1.7.5
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 "
keyb.h
"
31
#include <cairo.h>
32
#include <glib.h>
33
#include <xcb/xcb.h>
34
#include <xcb/xproto.h>
51
typedef
struct
_widget
widget
;
52
56
typedef
enum
{
58
WIDGET_TYPE_UNKNOWN
,
60
WIDGET_TYPE_LISTVIEW
=
SCOPE_MOUSE_LISTVIEW
,
62
WIDGET_TYPE_LISTVIEW_ELEMENT
=
SCOPE_MOUSE_LISTVIEW_ELEMENT
,
64
WIDGET_TYPE_EDITBOX
=
SCOPE_MOUSE_EDITBOX
,
66
WIDGET_TYPE_SCROLLBAR
=
SCOPE_MOUSE_SCROLLBAR
,
68
WIDGET_TYPE_MODE_SWITCHER
=
SCOPE_MOUSE_MODE_SWITCHER
,
70
WIDGET_TYPE_TEXTBOX_TEXT
,
71
}
WidgetType
;
72
76
typedef
enum
{
78
WIDGET_TRIGGER_ACTION_RESULT_IGNORED
,
80
WIDGET_TRIGGER_ACTION_RESULT_HANDLED
,
82
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN
,
84
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END
,
85
}
WidgetTriggerActionResult
;
86
98
typedef
widget
*(*widget_find_mouse_target_cb)(
widget
*
widget
,
WidgetType
type
,
99
gint
x
, gint
y
);
100
113
typedef
WidgetTriggerActionResult
(*
widget_trigger_action_cb
)(
widget
*
widget
,
114
guint action,
115
gint
x
, gint
y
,
116
void
*user_data);
117
119
#define WIDGET(a) ((widget *)(a))
120
130
int
widget_intersect
(
const
widget
*
widget
,
int
x
,
int
y
);
131
139
void
widget_move
(
widget
*
widget
,
short
x
,
short
y
);
140
147
void
widget_set_type
(
widget
*
widget
,
WidgetType
type
);
148
155
gboolean
widget_enabled
(
widget
*
widget
);
156
163
void
widget_set_enabled
(
widget
*
widget
, gboolean
enabled
);
164
170
static
inline
void
widget_disable
(
widget
*
widget
) {
171
widget_set_enabled
(
widget
, FALSE);
172
}
178
static
inline
void
widget_enable
(
widget
*
widget
) {
179
widget_set_enabled
(
widget
, TRUE);
180
}
181
188
void
widget_draw
(
widget
*
widget
, cairo_t *d);
189
195
void
widget_free
(
widget
*wid);
196
204
void
widget_resize
(
widget
*
widget
,
short
w
,
short
h
);
205
211
int
widget_get_height
(
widget
*
widget
);
212
218
int
widget_get_width
(
widget
*
widget
);
219
225
int
widget_get_y_pos
(
widget
*
widget
);
226
232
int
widget_get_x_pos
(
widget
*
widget
);
233
241
void
widget_xy_to_relative
(
widget
*
widget
, gint *
x
, gint *
y
);
242
249
void
widget_update
(
widget
*
widget
);
256
void
widget_queue_redraw
(
widget
*wid);
262
gboolean
widget_need_redraw
(
widget
*wid);
263
274
widget
*
widget_find_mouse_target
(
widget
*wid,
WidgetType
type
, gint
x
, gint
y
);
275
287
WidgetTriggerActionResult
widget_check_action
(
widget
*wid, guint action, gint
x
,
288
gint
y
);
289
301
WidgetTriggerActionResult
widget_trigger_action
(
widget
*wid, guint action,
302
gint
x
, gint
y
);
303
311
void
widget_set_trigger_action_handler
(
widget
*wid,
widget_trigger_action_cb
cb,
312
void
*cb_data);
313
323
gboolean
widget_motion_notify
(
widget
*wid, gint
x
, gint
y
);
324
333
int
widget_get_desired_height
(
widget
*wid,
const
int
width);
334
343
int
widget_get_desired_width
(
widget
*wid,
const
int
height);
351
int
widget_get_absolute_xpos
(
widget
*wid);
359
int
widget_get_absolute_ypos
(
widget
*wid);
361
#endif
// ROFI_WIDGET_H
SCOPE_MOUSE_LISTVIEW_ELEMENT
@ SCOPE_MOUSE_LISTVIEW_ELEMENT
Definition
keyb.h:46
SCOPE_MOUSE_EDITBOX
@ SCOPE_MOUSE_EDITBOX
Definition
keyb.h:49
SCOPE_MOUSE_LISTVIEW
@ SCOPE_MOUSE_LISTVIEW
Definition
keyb.h:45
SCOPE_MOUSE_SCROLLBAR
@ SCOPE_MOUSE_SCROLLBAR
Definition
keyb.h:50
SCOPE_MOUSE_MODE_SWITCHER
@ SCOPE_MOUSE_MODE_SWITCHER
Definition
keyb.h:51
widget_trigger_action
WidgetTriggerActionResult widget_trigger_action(widget *wid, guint action, gint x, gint y)
Definition
widget.c:546
widget_queue_redraw
void widget_queue_redraw(widget *wid)
Definition
widget.c:487
widget_enabled
gboolean widget_enabled(widget *widget)
Definition
widget.c:116
widget_get_width
int widget_get_width(widget *widget)
Definition
widget.c:446
widget_free
void widget_free(widget *wid)
Definition
widget.c:425
widget_disable
static void widget_disable(widget *widget)
Definition
widget.h:170
widget_intersect
int widget_intersect(const widget *widget, int x, int y)
Definition
widget.c:75
widget_get_height
int widget_get_height(widget *widget)
Definition
widget.c:437
widget
struct _widget widget
Definition
widget.h:51
widget_resize
void widget_resize(widget *widget, short w, short h)
Definition
widget.c:87
WidgetType
WidgetType
Definition
widget.h:56
widget_enable
static void widget_enable(widget *widget)
Definition
widget.h:178
widget_set_enabled
void widget_set_enabled(widget *widget, gboolean enabled)
Definition
widget.c:123
widget_check_action
WidgetTriggerActionResult widget_check_action(widget *wid, guint action, gint x, gint y)
widget_update
void widget_update(widget *widget)
Definition
widget.c:477
widget_get_desired_width
int widget_get_desired_width(widget *wid, const int height)
Definition
widget.c:653
widget_get_absolute_ypos
int widget_get_absolute_ypos(widget *wid)
Definition
widget.c:673
widget_move
void widget_move(widget *widget, short x, short y)
Definition
widget.c:102
widget_get_y_pos
int widget_get_y_pos(widget *widget)
Definition
widget.c:461
widget_get_absolute_xpos
int widget_get_absolute_xpos(widget *wid)
Definition
widget.c:663
widget_draw
void widget_draw(widget *widget, cairo_t *d)
Definition
widget.c:135
widget_xy_to_relative
void widget_xy_to_relative(widget *widget, gint *x, gint *y)
Definition
widget.c:468
WidgetTriggerActionResult
WidgetTriggerActionResult
Definition
widget.h:76
widget_set_type
void widget_set_type(widget *widget, WidgetType type)
Definition
widget.c:109
widget_set_trigger_action_handler
void widget_set_trigger_action_handler(widget *wid, widget_trigger_action_cb cb, void *cb_data)
Definition
widget.c:557
widget_get_desired_height
int widget_get_desired_height(widget *wid, const int width)
Definition
widget.c:644
widget_motion_notify
gboolean widget_motion_notify(widget *wid, gint x, gint y)
Definition
widget.c:566
widget_trigger_action_cb
WidgetTriggerActionResult(* widget_trigger_action_cb)(widget *widget, guint action, gint x, gint y, void *user_data)
Definition
widget.h:113
widget_need_redraw
gboolean widget_need_redraw(widget *wid)
Definition
widget.c:500
widget_get_x_pos
int widget_get_x_pos(widget *widget)
Definition
widget.c:455
widget_find_mouse_target
widget * widget_find_mouse_target(widget *wid, WidgetType type, gint x, gint y)
Definition
widget.c:510
WIDGET_TYPE_UNKNOWN
@ WIDGET_TYPE_UNKNOWN
Definition
widget.h:58
WIDGET_TYPE_LISTVIEW_ELEMENT
@ WIDGET_TYPE_LISTVIEW_ELEMENT
Definition
widget.h:62
WIDGET_TYPE_TEXTBOX_TEXT
@ WIDGET_TYPE_TEXTBOX_TEXT
Definition
widget.h:70
WIDGET_TYPE_SCROLLBAR
@ WIDGET_TYPE_SCROLLBAR
Definition
widget.h:66
WIDGET_TYPE_MODE_SWITCHER
@ WIDGET_TYPE_MODE_SWITCHER
Definition
widget.h:68
WIDGET_TYPE_EDITBOX
@ WIDGET_TYPE_EDITBOX
Definition
widget.h:64
WIDGET_TYPE_LISTVIEW
@ WIDGET_TYPE_LISTVIEW
Definition
widget.h:60
WIDGET_TRIGGER_ACTION_RESULT_HANDLED
@ WIDGET_TRIGGER_ACTION_RESULT_HANDLED
Definition
widget.h:80
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END
@ WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END
Definition
widget.h:84
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN
@ WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN
Definition
widget.h:82
WIDGET_TRIGGER_ACTION_RESULT_IGNORED
@ WIDGET_TRIGGER_ACTION_RESULT_IGNORED
Definition
widget.h:78
keyb.h
_widget
Definition
widget-internal.h:57
_widget::enabled
gboolean enabled
Definition
widget-internal.h:82
_widget::h
short h
Definition
widget-internal.h:67
_widget::w
short w
Definition
widget-internal.h:65
_widget::y
short y
Definition
widget-internal.h:63
_widget::x
short x
Definition
widget-internal.h:61
_widget::type
WidgetType type
Definition
widget-internal.h:59
include
widgets
widget.h
Generated by
1.11.0