|
rofi 2.0.0
|
#include <config.h>#include <locale.h>#include <signal.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <unistd.h>#include <glib.h>#include "rofi.h"#include "settings.h"#include "timings.h"#include "display.h"#include "helper-theme.h"#include "helper.h"#include "mode.h"#include "view-internal.h"#include "view.h"#include "theme.h"#include "xcb-dummy.h"
Go to the source code of this file.
Data Structures | |
| struct | _thread_state_view |
Macros | |
| #define | G_LOG_DOMAIN "View" |
Typedefs | |
| typedef struct _thread_state_view | thread_state_view |
Variables | |
| static const view_proxy * | proxy |
| GThreadPool * | tpool = NULL |
| RofiViewState * | current_active_menu = NULL |
| struct _rofi_view_cache_state | CacheState |
| GList * | list_of_warning_msgs |
| typedef struct _thread_state_view thread_state_view |
Thread state for workers started for the view.
|
static |
Create a new, 0 initialized RofiViewState structure.
Definition at line 404 of file view.c.
Referenced by rofi_view_create(), and rofi_view_error_dialog().

|
static |
Definition at line 747 of file view.c.
References RofiViewState::distance, RofiViewState::line_map, RofiViewState::list_view, listview_set_max_lines(), mode_get_num_entries(), RofiViewState::num_lines, rofi_view_reload_message_bar(), and RofiViewState::sw.
Referenced by rofi_view_refilter_real().


|
static |
Definition at line 447 of file view.c.
References _thread_state_view::acount, RofiViewState::case_sensitive, _thread_state_view::cond, config, _thread_state_view::count, RofiViewState::distance, levenshtein(), RofiViewState::line_map, mode_get_completion(), mode_token_match(), _thread_state_view::mutex, _thread_state_view::pattern, _thread_state_view::plen, rofi_scorer_fuzzy_evaluate(), SORT_FZF, SORT_NORMAL, _thread_state_view::start, _thread_state_view::state, RofiViewState::sw, and RofiViewState::tokens.
Referenced by rofi_view_refilter_real().


|
static |
Definition at line 91 of file view.c.
References RofiViewState::case_sensitive, and config.
Referenced by rofi_view_add_widget(), rofi_view_refilter_real(), and rofi_view_trigger_global_action().

|
static |
Levenshtein Sorting.
Definition at line 109 of file view.c.
Referenced by rofi_view_refilter_real().

|
static |
Definition at line 742 of file view.c.
References rofi_view_workers_finalize(), and rofi_view_workers_initialize().
Referenced by rofi_view_add_widget().


| void process_result | ( | RofiViewState * | state | ) |
|
static |
Definition at line 1903 of file view.c.
References config, helper_execute(), and helper_parse_setup().
Referenced by rofi_view_error_dialog().


|
static |
Definition at line 1463 of file view.c.
References config, RofiViewState::filtered_lines, helper_execute(), helper_execute_command(), helper_parse_setup(), RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), MENU_CANCEL, MENU_COMPLETE, MENU_NEXT, MENU_OK, MENU_PREVIOUS, MENU_QUICK_SWITCH, mode_get_display_value(), RofiViewState::retv, and RofiViewState::sw.
Referenced by rofi_view_maybe_update().


|
static |
Definition at line 1974 of file view.c.
References _thread_state::free.
Referenced by rofi_view_workers_initialize().

|
static |
Definition at line 1966 of file view.c.
References _thread_state::priority.
Referenced by rofi_view_workers_initialize().

|
static |
MAINBOX
INPUTBAR
PROMPT
CASE INDICATOR
ENTRY BOX
MESSAGE
LISTVIEW
MODE SWITCHER
Definition at line 1590 of file view.c.
References box_add(), box_create(), RofiViewState::case_indicator, config, container_add(), container_create(), get_matching_state(), HIGHLIGHT, icon_create(), RofiViewState::icon_current_entry, RofiViewState::list_view, listview_create(), listview_set_max_lines(), listview_set_mouse_activated_cb(), listview_set_scroll_type(), listview_set_selection_changed_callback(), RofiViewState::menu_flags, MENU_PASSWORD, RofiViewState::mesg_box, RofiViewState::mesg_tb, mode_get_display_name(), RofiViewState::modes, NORMAL, RofiViewState::num_modes, RofiViewState::overlay, page_changed_callback(), RofiViewState::prompt, rofi_get_mode(), rofi_get_num_enabled_modes(), ROFI_ORIENTATION_HORIZONTAL, ROFI_ORIENTATION_VERTICAL, rofi_theme_get_list_strings(), rofi_theme_get_string(), rofi_view_add_widget(), rofi_view_listview_mouse_activated_cb(), rofi_view_reload_message_bar(), rofi_view_update_prompt(), selection_changed_callback(), RofiViewState::sidebar_bar, RofiViewState::sw, TB_AUTOHEIGHT, TB_AUTOWIDTH, RofiViewState::tb_current_entry, TB_EDITABLE, RofiViewState::tb_filtered_rows, TB_MARKUP, TB_PASSWORD, RofiViewState::tb_total_rows, TB_WRAP, RofiViewState::text, textbox_button_trigger_action(), textbox_create(), textbox_sidebar_modes_trigger_action(), textbox_text(), update_callback(), URGENT, WIDGET, widget_disable(), widget_set_trigger_action_handler(), WIDGET_TYPE_EDITBOX, WIDGET_TYPE_MODE_SWITCHER, and WIDGET_TYPE_TEXTBOX_TEXT.
Referenced by rofi_view_add_widget(), and rofi_view_create().


| int rofi_view_calculate_window_height | ( | RofiViewState * | state | ) |
Definition at line 2143 of file view.c.
References proxy.
Referenced by rofi_view_create(), rofi_view_error_dialog(), and rofi_view_refilter_real().

| void rofi_view_calculate_window_width | ( | struct RofiViewState * | state | ) |
Definition at line 2139 of file view.c.
References proxy.
Referenced by rofi_view_create(), and rofi_view_error_dialog().

|
static |
| data | A thread_state object. |
| user_data | User data to pass to thread_state callback |
Small wrapper function that is internally used to pass a job to a worker.
Definition at line 442 of file view.c.
References _thread_state::callback.
Referenced by rofi_view_refilter_real(), and rofi_view_workers_initialize().

|
static |
This function should be called when the input of the entry is changed. TODO: Evaluate if this needs to be a 'signal' on textbox?
Definition at line 954 of file view.c.
References CacheState, current_active_menu, rofi_view_take_action(), RofiViewState::text, textbox_get_cursor(), and textbox_get_text().
Referenced by rofi_view_handle_text(), and rofi_view_trigger_global_action().


|
static |
Definition at line 1577 of file view.c.
References RofiViewState::line_map, listview_get_selected(), MENU_CUSTOM_ACTION, MENU_OK, RofiViewState::quit, RofiViewState::retv, RofiViewState::selected_line, and RofiViewState::skip_absorb.
Referenced by rofi_view_add_widget().


|
inlinestatic |
| state | The current RofiViewState |
Move the selection to first row.
Definition at line 620 of file view.c.
References RofiViewState::list_view, and listview_set_selected().
Referenced by rofi_view_trigger_global_action().


|
inlinestatic |
| state | The current RofiViewState |
Move the selection to last row.
Definition at line 630 of file view.c.
References RofiViewState::filtered_lines, RofiViewState::list_view, and listview_set_selected().
Referenced by rofi_view_trigger_global_action().


|
inlinestatic |
| state | The current RofiViewState |
complete current row.
Definition at line 600 of file view.c.
References RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), mode_get_completion(), MOVE_END, RofiViewState::refilter, RofiViewState::sw, RofiViewState::text, textbox_keybinding(), and textbox_text().
Referenced by rofi_view_trigger_global_action().


|
static |
Nav helper functions, to avoid duplicate code.
| state | The current RofiViewState |
Tab handling.
Definition at line 576 of file view.c.
References RofiViewState::filtered_lines, RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_nav_down(), MENU_NEXT, MENU_OK, RofiViewState::prev_action, RofiViewState::quit, RofiViewState::retv, ROW_TAB, and RofiViewState::selected_line.
Referenced by rofi_view_trigger_global_action().


|
static |
Definition at line 2030 of file view.c.
References CacheState, RofiViewState::overlay, rofi_view_get_active(), rofi_view_queue_redraw(), WIDGET, and widget_disable().
Referenced by rofi_view_set_overlay_timeout().


| void rofi_view_refilter | ( | RofiViewState * | state | ) |
Definition at line 899 of file view.c.
References CacheState, config, rofi_view_refilter_real(), RofiViewState::text, and textbox::text.
Referenced by rofi_view_create(), rofi_view_maybe_update(), and rofi_view_trigger_global_action().


|
static |
Definition at line 929 of file view.c.
References CacheState, RofiViewState::refilter, and rofi_view_refilter_real().
Referenced by rofi_view_switch_mode(), and rofi_view_trigger_global_action().


|
static |
On long lists it can be beneficial to parallelize. If number of threads is 1, no thread is spawn. If number of threads > 1 and there are enough (> 1000) items, spawn jobs for the thread pool. For large lists with 8 threads I see a factor three speedup of the whole function.
Definition at line 757 of file view.c.
References _rofi_view_reload_row(), _thread_state_view::acount, CacheState, _thread_state::callback, RofiViewState::case_indicator, RofiViewState::case_sensitive, _thread_state_view::cond, config, _thread_state_view::count, count, RofiViewState::distance, filter_elements(), RofiViewState::filtered_lines, _thread_state::free, get_matching_state(), RofiViewState::height, helper_tokenize(), helper_tokenize_free(), lev_sort(), RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_set_filtered(), listview_set_num_elements(), MENU_OK, mode_preprocess_input(), _thread_state_view::mutex, RofiViewState::num_lines, parse_case_sensitivity(), _thread_state_view::pattern, _thread_state_view::plen, _thread_state::priority, RofiViewState::quit, RofiViewState::refilter, RofiViewState::reload, RofiViewState::retv, rofi_view_calculate_window_height(), rofi_view_calculate_window_position(), rofi_view_call_thread(), rofi_view_update(), rofi_view_window_update_size(), RofiViewState::selected_line, _thread_state_view::st, _thread_state_view::start, _thread_state_view::state, _thread_state_view::stop, RofiViewState::sw, RofiViewState::tb_filtered_rows, RofiViewState::tb_total_rows, RofiViewState::text, textbox::text, textbox_text(), TICK_N, RofiViewState::tokens, and tpool.
Referenced by rofi_view_refilter(), and rofi_view_refilter_force().


|
static |
we want to popin warning here.
Definition at line 208 of file view.c.
References list_of_warning_msgs, RofiViewState::mesg_box, RofiViewState::mesg_tb, mode_get_message(), RofiViewState::sw, textbox_text(), WIDGET, widget_disable(), and widget_enable().
Referenced by _rofi_view_reload_row(), and rofi_view_add_widget().


|
static |
Definition at line 1427 of file view.c.
References _widget::cursor_type, RofiViewState::main_window, ROFI_CURSOR_DEFAULT, WIDGET, widget_find_mouse_target(), and WIDGET_TYPE_UNKNOWN.
Referenced by rofi_view_handle_mouse_motion().


|
static |
Find the widget
Check string property
Definition at line 267 of file view.c.
References CacheState, _PropertyValue::f, _PropertyValue::i, P_DOUBLE, P_INTEGER, rofi_config_find_widget(), rofi_theme_find_property(), rofi_view_user_timeout(), Property::type, and Property::value.
Referenced by rofi_view_create(), and rofi_view_trigger_action().


|
static |
Check string property
Definition at line 245 of file view.c.
References key_binding_get_action_from_name(), P_STRING, rofi_config_find_widget(), rofi_theme_find_property(), rofi_view_get_active(), rofi_view_trigger_action(), _PropertyValue::s, SCOPE_GLOBAL, Property::type, and Property::value.
Referenced by rofi_view_input_changed(), and rofi_view_user_timeout().


|
static |
Definition at line 982 of file view.c.
References ACCEPT_ALT, ACCEPT_CUSTOM, ACCEPT_CUSTOM_ALT, ACCEPT_ENTRY, CacheState, CANCEL, RofiViewState::case_indicator, CHANGE_ELLIPSIZE, CLEAR_LINE, CLIPBOARD_DEFAULT, CLIPBOARD_PRIMARY, config, COPY_SECONDARY, CUSTOM_1, CUSTOM_10, CUSTOM_11, CUSTOM_12, CUSTOM_13, CUSTOM_14, CUSTOM_15, CUSTOM_16, CUSTOM_17, CUSTOM_18, CUSTOM_19, CUSTOM_2, CUSTOM_3, CUSTOM_4, CUSTOM_5, CUSTOM_6, CUSTOM_7, CUSTOM_8, CUSTOM_9, DELETE_ENTRY, display_get_clipboard_data(), DISPLAY_WAYLAND, DISPLAY_XCB, ELEMENT_NEXT, ELEMENT_PREV, ENTRY_HISTORY_DOWN, ENTRY_HISTORY_UP, get_matching_state(), helper_get_matching_mode_str(), helper_select_next_matching_mode(), helper_select_previous_matching_mode(), RofiViewState::line_map, RofiViewState::list_view, listview_get_selected(), listview_nav_down(), listview_nav_left(), listview_nav_next(), listview_nav_page_next(), listview_nav_page_prev(), listview_nav_prev(), listview_nav_right(), listview_nav_up(), listview_toggle_ellipsizing(), MATCHER_DOWN, MATCHER_UP, MENU_CANCEL, MENU_COMPLETE, MENU_CUSTOM_ACTION, MENU_CUSTOM_COMMAND, MENU_CUSTOM_INPUT, MENU_ENTRY_DELETE, MENU_LOWER_MASK, MENU_NEXT, MENU_OK, MENU_PREVIOUS, MODE_COMPLETE, mode_get_completion(), MODE_NEXT, MODE_PREVIOUS, MOVE_CHAR_BACK, MOVE_CHAR_FORWARD, MOVE_END, MOVE_FRONT, MOVE_WORD_BACK, MOVE_WORD_FORWARD, netatoms, PAGE_NEXT, PAGE_PREV, PASTE_PRIMARY, PASTE_SECONDARY, RofiViewState::quit, RofiViewState::refilter, REMOVE_CHAR_BACK, REMOVE_CHAR_FORWARD, REMOVE_TO_EOL, REMOVE_TO_SOL, REMOVE_WORD_BACK, REMOVE_WORD_FORWARD, RofiViewState::retv, rofi_capture_screenshot(), rofi_view_get_active(), rofi_view_input_changed(), rofi_view_nav_first(), rofi_view_nav_last(), rofi_view_nav_row_select(), rofi_view_nav_row_tab(), rofi_view_refilter(), rofi_view_refilter_force(), rofi_view_set_overlay_timeout(), ROW_DOWN, ROW_FIRST, ROW_LAST, ROW_LEFT, ROW_RIGHT, ROW_SELECT, ROW_TAB, ROW_UP, SCREENSHOT, SELECT_ELEMENT_1, SELECT_ELEMENT_10, SELECT_ELEMENT_2, SELECT_ELEMENT_3, SELECT_ELEMENT_4, SELECT_ELEMENT_5, SELECT_ELEMENT_6, SELECT_ELEMENT_7, SELECT_ELEMENT_8, SELECT_ELEMENT_9, RofiViewState::selected_line, RofiViewState::sw, RofiViewState::text, textbox::text, textbox_cursor(), textbox_get_cursor(), textbox_get_text(), textbox_keybinding(), textbox_text(), TOGGLE_CASE_SENSITIVITY, TOGGLE_SORT, xcb, and xcb_stuff_set_clipboard().
Referenced by rofi_view_trigger_action(), and textbox_button_trigger_action().


| void rofi_view_update | ( | RofiViewState * | state, |
| gboolean | qr ) |
Definition at line 2114 of file view.c.
References proxy.
Referenced by rofi_view_create(), rofi_view_maybe_update(), rofi_view_refilter_real(), rofi_view_switch_mode(), and xcb_rofi_view_repaint().

|
static |
Definition at line 200 of file view.c.
References mode_get_display_name(), RofiViewState::prompt, RofiViewState::sw, and textbox_text().
Referenced by rofi_view_add_widget(), and rofi_view_switch_mode().


|
static |
Definition at line 261 of file view.c.
References CacheState, and rofi_view_take_action().
Referenced by rofi_view_set_user_timeout().


| void rofi_view_window_update_size | ( | RofiViewState * | state | ) |
Definition at line 2147 of file view.c.
References proxy.
Referenced by rofi_view_create(), rofi_view_error_dialog(), rofi_view_refilter_real(), and rofi_view_set_active().

|
static |
Definition at line 117 of file view.c.
References config, helper_execute(), and helper_parse_setup().
Referenced by rofi_capture_screenshot().


|
static |
Definition at line 654 of file view.c.
References RofiViewState::icon_current_entry, icon_set_surface(), RofiViewState::line_map, mode_get_display_value(), mode_get_icon(), RofiViewState::previous_line, selection_changed_user_callback(), RofiViewState::sw, RofiViewState::tb_current_entry, textbox_text(), WIDGET, and widget_get_desired_height().
Referenced by rofi_view_add_widget().


|
static |
Definition at line 638 of file view.c.
References config, helper_execute(), helper_parse_setup(), RofiViewState::line_map, mode_get_display_value(), and RofiViewState::sw.
Referenced by selection_changed_callback().


|
static |
Definition at line 1548 of file view.c.
References MENU_LOWER_MASK, MENU_QUICK_SWITCH, RofiViewState::modes, MOUSE_CLICK_DOWN, MOUSE_CLICK_UP, MOUSE_DCLICK_DOWN, MOUSE_DCLICK_UP, RofiViewState::num_modes, RofiViewState::quit, RofiViewState::retv, RofiViewState::skip_absorb, WIDGET, WIDGET_TRIGGER_ACTION_RESULT_HANDLED, and WIDGET_TRIGGER_ACTION_RESULT_IGNORED.
Referenced by rofi_view_add_widget().

|
static |
Definition at line 687 of file view.c.
References helper_token_match_get_pango_attr(), icon_set_surface(), RofiViewState::line_map, mode_get_display_value(), mode_get_icon(), ROFI_HL_BOLD, ROFI_HL_UNDERLINE, rofi_theme_get_highlight(), RofiViewState::sw, textbox_font(), textbox_get_pango_attributes(), textbox_get_visible_text(), textbox_set_pango_attributes(), textbox_text(), RofiViewState::tokens, WIDGET, and widget_get_desired_height().
Referenced by rofi_view_add_widget().


| void view_init | ( | const view_proxy * | view_in | ) |
Definition at line 67 of file view.c.
References proxy.
Referenced by display_init().

| struct _rofi_view_cache_state CacheState |
Definition at line 75 of file view.c.
Referenced by input_history_initialize(), input_history_save(), rofi_view_create(), rofi_view_error_dialog(), rofi_view_input_changed(), rofi_view_overlay_timeout(), rofi_view_refilter(), rofi_view_refilter_force(), rofi_view_refilter_real(), rofi_view_remove_active(), rofi_view_set_active(), rofi_view_set_overlay(), rofi_view_set_overlay_timeout(), rofi_view_set_selected_line(), rofi_view_set_user_timeout(), rofi_view_trigger_global_action(), rofi_view_user_timeout(), wayland_rofi_view_cleanup(), xcb___create_window(), xcb_rofi_view_cleanup(), xcb_rofi_view_get_window(), xcb_rofi_view_hide(), xcb_rofi_view_ping_mouse(), xcb_rofi_view_repaint(), xcb_rofi_view_set_cursor(), xcb_rofi_view_set_window_title(), xcb_rofi_view_temp_click_to_exit(), xcb_rofi_view_temp_configure_notify(), and xcb_rofi_view_window_update_size().
| RofiViewState* current_active_menu = NULL |
Global pointer to the currently active RofiViewState
Definition at line 73 of file view.c.
Referenced by rofi_capture_screenshot(), rofi_view_get_active(), rofi_view_input_changed(), rofi_view_remove_active(), and rofi_view_set_active().
|
extern |
List of warning messages for the user.
Definition at line 90 of file rofi.c.
Referenced by rofi_add_warning_message(), rofi_clear_warning_messages(), rofi_theme_rasi_validate(), rofi_view_reload_message_bar(), and startup().
|
static |
| GThreadPool* tpool = NULL |
Thread pool used for filtering
Definition at line 70 of file view.c.
Referenced by rofi_icon_fetcher_query(), rofi_icon_fetcher_query_advanced(), rofi_view_refilter_real(), rofi_view_workers_finalize(), and rofi_view_workers_initialize().