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
{
59
WIDGET_TYPE_UNKNOWN
,
61
WIDGET_TYPE_LISTVIEW
=
SCOPE_MOUSE_LISTVIEW
,
63
WIDGET_TYPE_LISTVIEW_ELEMENT
=
SCOPE_MOUSE_LISTVIEW_ELEMENT
,
65
WIDGET_TYPE_EDITBOX
=
SCOPE_MOUSE_EDITBOX
,
67
WIDGET_TYPE_SCROLLBAR
=
SCOPE_MOUSE_SCROLLBAR
,
69
WIDGET_TYPE_SIDEBAR_MODI
=
SCOPE_MOUSE_SIDEBAR_MODI
,
71
WIDGET_TYPE_TEXTBOX_TEXT
,
72
}
WidgetType
;
73
77
typedef
enum
78
{
80
WIDGET_TRIGGER_ACTION_RESULT_IGNORED
,
82
WIDGET_TRIGGER_ACTION_RESULT_HANDLED
,
84
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN
,
86
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END
,
87
}
WidgetTriggerActionResult
;
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
143
WidgetType
widget_type
(
widget
*
widget
);
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
194
int
widget_get_height
(
widget
*
widget
);
195
201
int
widget_get_width
(
widget
*
widget
);
202
208
int
widget_get_y_pos
(
widget
*
widget
);
209
215
int
widget_get_x_pos
(
widget
*
widget
);
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
widget_type
WidgetType widget_type(widget *widget)
Definition:
widget.c:106
WidgetType
WidgetType
Definition:
widget.h:56
widget_need_redraw
gboolean widget_need_redraw(widget *wid)
Definition:
widget.c:434
widget_update
void widget_update(widget *widget)
Definition:
widget.c:411
keyb.h
SCOPE_MOUSE_SCROLLBAR
Definition:
keyb.h:47
WIDGET_TYPE_LISTVIEW
Definition:
widget.h:61
widget_trigger_action_cb
WidgetTriggerActionResult(* widget_trigger_action_cb)(widget *widget, guint action, gint x, gint y, void *user_data)
Definition:
widget.h:112
widget_get_width
int widget_get_width(widget *widget)
Definition:
widget.c:377
widget_free
void widget_free(widget *wid)
Definition:
widget.c:355
WIDGET_TRIGGER_ACTION_RESULT_IGNORED
Definition:
widget.h:80
widget_set_trigger_action_handler
void widget_set_trigger_action_handler(widget *wid, widget_trigger_action_cb cb, void *cb_data)
Definition:
widget.c:468
_widget::x
short x
Definition:
widget-internal.h:40
widget_draw
void widget_draw(widget *widget, cairo_t *d)
Definition:
widget.c:140
widget_disable
void widget_disable(widget *widget)
Definition:
widget.c:131
widget_intersect
int widget_intersect(const widget *widget, int x, int y)
Definition:
widget.c:68
WIDGET_TYPE_SCROLLBAR
Definition:
widget.h:67
widget_move
void widget_move(widget *widget, short x, short y)
Definition:
widget.c:98
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END
Definition:
widget.h:86
widget_xy_to_relative
void widget_xy_to_relative(widget *widget, gint *x, gint *y)
Definition:
widget.c:402
widget_resize
void widget_resize(widget *widget, short w, short h)
Definition:
widget.c:82
widget_trigger_action
WidgetTriggerActionResult widget_trigger_action(widget *wid, guint action, gint x, gint y)
Definition:
widget.c:460
SCOPE_MOUSE_LISTVIEW_ELEMENT
Definition:
keyb.h:43
widget_queue_redraw
void widget_queue_redraw(widget *wid)
Definition:
widget.c:421
WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN
Definition:
widget.h:84
widget_enabled
gboolean widget_enabled(widget *widget)
Definition:
widget.c:114
widget
struct _widget widget
Definition:
widget.h:51
WIDGET_TYPE_LISTVIEW_ELEMENT
Definition:
widget.h:63
WIDGET_TRIGGER_ACTION_RESULT_HANDLED
Definition:
widget.h:82
_widget::h
short h
Definition:
widget-internal.h:46
_widget::y
short y
Definition:
widget-internal.h:42
WIDGET_TYPE_EDITBOX
Definition:
widget.h:65
widget_get_desired_width
int widget_get_desired_width(widget *wid)
Definition:
widget.c:566
WidgetTriggerActionResult
WidgetTriggerActionResult
Definition:
widget.h:77
widget_enable
void widget_enable(widget *widget)
Definition:
widget.c:122
SCOPE_MOUSE_EDITBOX
Definition:
keyb.h:46
widget_get_x_pos
int widget_get_x_pos(widget *widget)
Definition:
widget.c:387
SCOPE_MOUSE_LISTVIEW
Definition:
keyb.h:42
SCOPE_MOUSE_SIDEBAR_MODI
Definition:
keyb.h:48
widget_get_absolute_xpos
int widget_get_absolute_xpos(widget *wid)
Definition:
widget.c:577
widget_motion_notify
gboolean widget_motion_notify(widget *wid, gint x, gint y)
Definition:
widget.c:477
widget_get_absolute_ypos
int widget_get_absolute_ypos(widget *wid)
Definition:
widget.c:588
widget_get_desired_height
int widget_get_desired_height(widget *wid)
Definition:
widget.c:556
widget_find_mouse_target
widget * widget_find_mouse_target(widget *wid, WidgetType type, gint x, gint y)
Definition:
widget.c:442
WIDGET_TYPE_TEXTBOX_TEXT
Definition:
widget.h:71
_widget::w
short w
Definition:
widget-internal.h:44
_widget::type
WidgetType type
Definition:
widget-internal.h:38
_widget
Definition:
widget-internal.h:35
WIDGET_TYPE_UNKNOWN
Definition:
widget.h:59
widget_get_y_pos
int widget_get_y_pos(widget *widget)
Definition:
widget.c:394
WIDGET_TYPE_SIDEBAR_MODI
Definition:
widget.h:69
widget_get_height
int widget_get_height(widget *widget)
Definition:
widget.c:367
include
widgets
widget.h
Generated by
1.8.14