2016-02-06 13:27:36 +00:00
|
|
|
#ifndef ROFI_VIEW_INTERNAL_H
|
|
|
|
#define ROFI_VIEW_INTERNAL_H
|
|
|
|
#include "widget.h"
|
|
|
|
#include "textbox.h"
|
|
|
|
#include "scrollbar.h"
|
2016-04-07 13:32:22 +00:00
|
|
|
#include "keyb.h"
|
2016-02-19 18:29:06 +00:00
|
|
|
#include "x11-helper.h"
|
2016-02-06 13:27:36 +00:00
|
|
|
|
|
|
|
/**
|
2016-02-08 17:16:16 +00:00
|
|
|
* @ingroup ViewHandle
|
2016-02-06 13:27:36 +00:00
|
|
|
*
|
|
|
|
* @{
|
|
|
|
*/
|
|
|
|
// State of the menu.
|
|
|
|
|
2016-02-11 19:24:29 +00:00
|
|
|
struct RofiViewState
|
2016-02-06 13:27:36 +00:00
|
|
|
{
|
2016-05-08 09:13:11 +00:00
|
|
|
Mode *sw;
|
|
|
|
unsigned int menu_lines;
|
|
|
|
unsigned int max_elements;
|
|
|
|
unsigned int max_rows;
|
|
|
|
unsigned int columns;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int element_width;
|
|
|
|
int top_offset;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
|
|
|
// Update/Refilter list.
|
2016-05-08 09:13:11 +00:00
|
|
|
int update;
|
|
|
|
int refilter;
|
|
|
|
int rchanged;
|
2016-05-10 15:51:23 +00:00
|
|
|
unsigned int cur_page;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
|
|
|
// Entries
|
2016-05-08 09:13:11 +00:00
|
|
|
textbox *text;
|
|
|
|
textbox *prompt_tb;
|
|
|
|
textbox *message_tb;
|
|
|
|
textbox *case_indicator;
|
|
|
|
textbox **boxes;
|
|
|
|
scrollbar *scrollbar;
|
2016-06-26 13:48:12 +00:00
|
|
|
// Small overlay.
|
|
|
|
textbox *overlay;
|
2016-05-08 09:13:11 +00:00
|
|
|
int *distance;
|
|
|
|
unsigned int *line_map;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int num_lines;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
|
|
|
// Selected element.
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int selected;
|
|
|
|
unsigned int filtered_lines;
|
2016-02-06 13:27:36 +00:00
|
|
|
// Last offset in paginating.
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int last_offset;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
2016-04-07 13:32:22 +00:00
|
|
|
KeyBindingAction prev_action;
|
2016-05-08 09:13:11 +00:00
|
|
|
xcb_timestamp_t last_button_press;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
2016-05-08 09:13:11 +00:00
|
|
|
int quit;
|
|
|
|
int skip_absorb;
|
2016-02-06 13:27:36 +00:00
|
|
|
// Return state
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int selected_line;
|
|
|
|
MenuReturn retv;
|
|
|
|
int line_height;
|
|
|
|
unsigned int border;
|
|
|
|
workarea mon;
|
2016-02-06 13:27:36 +00:00
|
|
|
|
|
|
|
// Sidebar view
|
2016-05-08 09:13:11 +00:00
|
|
|
unsigned int num_modi;
|
|
|
|
textbox **modi;
|
2016-02-10 18:40:19 +00:00
|
|
|
|
2016-05-08 09:13:11 +00:00
|
|
|
MenuFlags menu_flags;
|
2016-09-08 20:42:41 +00:00
|
|
|
int mouse_seen;
|
|
|
|
|
2016-02-06 13:27:36 +00:00
|
|
|
// Handlers.
|
2016-05-08 09:13:11 +00:00
|
|
|
void ( *x11_event_loop )( struct RofiViewState *state, xcb_generic_event_t *ev, xkb_stuff *xkb );
|
|
|
|
void ( *finalize )( struct RofiViewState *state );
|
2016-02-11 19:24:29 +00:00
|
|
|
};
|
2016-02-06 13:27:36 +00:00
|
|
|
/** @} */
|
|
|
|
#endif
|