2016-01-09 15:22:09 +00:00
|
|
|
#ifndef ROFI_WIDGET_H
|
|
|
|
#define ROFI_WIDGET_H
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @defgroup Widgets Widgets
|
|
|
|
*
|
|
|
|
* Generic Widget class
|
|
|
|
*
|
|
|
|
* @{
|
|
|
|
*/
|
2016-03-24 21:13:19 +00:00
|
|
|
typedef struct
|
2016-01-09 15:22:09 +00:00
|
|
|
{
|
|
|
|
/** X position relative to parent */
|
|
|
|
short x;
|
|
|
|
/** Y position relative to parent */
|
|
|
|
short y;
|
|
|
|
/** Width of the widget */
|
|
|
|
short w;
|
|
|
|
/** Height of the widget */
|
|
|
|
short h;
|
|
|
|
} Widget;
|
|
|
|
|
|
|
|
/** Macro to get widget from an implementation (e.g. textbox/scrollbar) */
|
2016-01-09 18:25:03 +00:00
|
|
|
#define WIDGET( a ) ( a != NULL ? &( a->widget ) : NULL )
|
2016-01-09 15:22:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param widget The widget to check
|
|
|
|
* @param x The X position relative to parent window
|
|
|
|
* @param y the Y position relative to parent window
|
|
|
|
*
|
|
|
|
* Check if x,y falls within the widget.
|
|
|
|
*
|
|
|
|
* @return TRUE if x,y falls within the widget
|
|
|
|
*/
|
2016-01-09 18:25:03 +00:00
|
|
|
int widget_intersect ( const Widget *widget, int x, int y );
|
2016-01-09 15:22:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param widget The widget to move
|
|
|
|
* @param x The new X position relative to parent window
|
|
|
|
* @param y The new Y position relative to parent window
|
|
|
|
*
|
|
|
|
* Moves the widget.
|
|
|
|
*/
|
2016-01-09 18:25:03 +00:00
|
|
|
void widget_move ( Widget *widget, short x, short y );
|
2016-01-09 15:22:09 +00:00
|
|
|
|
|
|
|
/*@}*/
|
|
|
|
#endif // ROFI_WIDGET_H
|