rofi 1.7.5
Textbox
Collaboration diagram for Textbox:

Data Structures

struct  TBFontConfig
 
struct  textbox
 

Typedefs

typedef struct TBFontConfig TBFontConfig
 

Enumerations

enum  TextboxFlags {
  TB_AUTOHEIGHT = 1 << 0 , TB_AUTOWIDTH = 1 << 1 , TB_EDITABLE = 1 << 19 , TB_MARKUP = 1 << 20 ,
  TB_WRAP = 1 << 21 , TB_PASSWORD = 1 << 22
}
 
enum  TextBoxFontType {
  NORMAL = 0 , URGENT = 1 , ACTIVE = 2 , SELECTED = 4 ,
  MARKUP = 8 , ALT = 16 , HIGHLIGHT = 32 , FMOD_MASK = (ALT | HIGHLIGHT) ,
  STATE_MASK = ~(SELECTED | MARKUP | ALT | HIGHLIGHT)
}
 

Functions

textboxtextbox_create (widget *parent, WidgetType type, const char *name, TextboxFlags flags, TextBoxFontType tbft, const char *text, double xalign, double yalign)
 
void textbox_font (textbox *tb, TextBoxFontType tbft)
 
void textbox_text (textbox *tb, const char *text)
 
int textbox_keybinding (textbox *tb, KeyBindingAction action)
 
gboolean textbox_append_text (textbox *tb, const char *pad, const int pad_len)
 
void textbox_cursor (textbox *tb, int pos)
 
void textbox_insert (textbox *tb, const int char_pos, const char *str, const int slen)
 
void textbox_setup (void)
 
void textbox_cleanup (void)
 
int textbox_get_height (const textbox *tb)
 
int textbox_get_font_height (const textbox *tb)
 
int textbox_get_font_width (const textbox *tb)
 
double textbox_get_estimated_char_width (void)
 
double textbox_get_estimated_ch (void)
 
double textbox_get_estimated_char_height (void)
 
void textbox_delete (textbox *tb, int pos, int dlen)
 
void textbox_moveresize (textbox *tb, int x, int y, int w, int h)
 
int textbox_get_estimated_height (const textbox *tb, int eh)
 
void textbox_set_pango_context (const char *font, PangoContext *p)
 
void textbox_set_pango_attributes (textbox *tb, PangoAttrList *list)
 
PangoAttrList * textbox_get_pango_attributes (textbox *tb)
 
const char * textbox_get_visible_text (const textbox *tb)
 
int textbox_get_desired_width (widget *wid, const int height)
 
void textbox_cursor_end (textbox *tb)
 
void textbox_set_ellipsize (textbox *tb, PangoEllipsizeMode mode)
 

Detailed Description

Typedef Documentation

◆ TBFontConfig

typedef struct TBFontConfig TBFontConfig

Cache to hold font descriptions. This it to avoid having to lookup each time.

Enumeration Type Documentation

◆ TextboxFlags

Flags for configuring textbox behaviour and looks during creation.

Enumerator
TB_AUTOHEIGHT 
TB_AUTOWIDTH 
TB_EDITABLE 
TB_MARKUP 
TB_WRAP 
TB_PASSWORD 

Definition at line 89 of file textbox.h.

◆ TextBoxFontType

Flags indicating current state of the textbox.

Enumerator
NORMAL 

Normal

URGENT 

Text in box is urgent.

ACTIVE 

Text in box is active.

SELECTED 

Text in box is selected.

MARKUP 

Text in box has pango markup.

ALT 

Text is on an alternate row

HIGHLIGHT 

Render font highlighted (inverted colors.)

FMOD_MASK 

Mask for alternate and highlighted

STATE_MASK 

Mask of bits indicating state

Definition at line 100 of file textbox.h.

Function Documentation

◆ textbox_append_text()

gboolean textbox_append_text ( textbox * tb,
const char * pad,
const int pad_len )
Parameters
tbHandle to the textbox
padThe text to insert
pad_lenthe length of the text

The text should be one insert from a keypress.. the first gunichar is validated to be (or not) control return TRUE if inserted

Definition at line 833 of file textbox.c.

References textbox::cursor, textbox::flags, TB_EDITABLE, textbox_cursor(), and textbox_insert().

Referenced by rofi_view_handle_text().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_cleanup()

void textbox_cleanup ( void )

Cleanup the allocated colors and fonts by textbox_setup().

Definition at line 890 of file textbox.c.

References p_context, and tbfc_cache.

Referenced by teardown().

Here is the caller graph for this function:

◆ textbox_create()

textbox * textbox_create ( widget * parent,
WidgetType type,
const char * name,
TextboxFlags flags,
TextBoxFontType tbft,
const char * text,
double xalign,
double yalign )
Parameters
parentThe widget's parent.
typeThe type of the to be created widget.
nameThe name of the to be created widget.
flagsTextboxFlags indicating the type of textbox.
tbftTextBoxFontType current state of textbox.
textinitial text to display.
xalignSet the Xalign value.
yalignset the yalign value.

Create a new textbox widget.

free with widget_free

Returns
a new textbox

Definition at line 186 of file textbox.c.

References _textbox_get_height(), textbox::blink, textbox::blink_timeout, textbox::changed, _widget::draw, textbox::emode, flags, textbox::flags, _widget::free, _widget::get_desired_height, _widget::get_desired_width, _widget::get_height, _widget::get_width, textbox::layout, p_context, textbox::placeholder, _widget::resize, rofi_theme_get_boolean(), rofi_theme_get_double(), rofi_theme_get_string(), TB_EDITABLE, TB_MARKUP, TB_WRAP, textbox_blink(), textbox_cursor_end(), textbox_draw(), textbox_editable_trigger_action(), textbox_font(), textbox_free(), textbox_get_desired_height(), textbox_get_desired_width(), textbox_get_width(), textbox_initialize_font(), textbox_resize(), textbox_tab_stops(), textbox_text(), _widget::trigger_action, WIDGET, textbox::widget, widget_init(), textbox::xalign, and textbox::yalign.

Referenced by listview_add_widget(), rofi_view_add_widget(), and rofi_view_error_dialog().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_cursor()

void textbox_cursor ( textbox * tb,
int pos )
Parameters
tbHandle to the textbox
posNew cursor position

Set the cursor position (string index)

Definition at line 543 of file textbox.c.

References textbox::blink, textbox::cursor, textbox::text, WIDGET, and widget_queue_redraw().

Referenced by textbox_append_text(), textbox_cursor_dec(), textbox_cursor_dec_word(), textbox_cursor_inc(), textbox_cursor_inc_word(), textbox_editable_trigger_action(), and textbox_keybinding().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_cursor_end()

void textbox_cursor_end ( textbox * tb)
Parameters
tbHandle to the textbox

Move the cursor to the end of the string.

Definition at line 645 of file textbox.c.

References textbox::blink, textbox::cursor, textbox::text, WIDGET, and widget_queue_redraw().

Referenced by process_result(), rofi_view_create(), textbox_create(), textbox_editable_trigger_action(), and textbox_keybinding().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_delete()

void textbox_delete ( textbox * tb,
int pos,
int dlen )
Parameters
tbHandle to the textbox
posThe start position
dlenThe length

Remove dlen bytes from position pos.

Definition at line 682 of file textbox.c.

References textbox::blink, textbox::changed, textbox::cursor, and textbox::text.

Referenced by textbox_cursor_bkspc_word(), textbox_cursor_del(), textbox_cursor_del_eol(), textbox_cursor_del_sol(), and textbox_cursor_del_word().

Here is the caller graph for this function:

◆ textbox_font()

void textbox_font ( textbox * tb,
TextBoxFontType tbft )
Parameters
tbHandle to the textbox
tbftThe style of font to render.

Set the font render style.

Definition at line 277 of file textbox.c.

References ACTIVE, ALT, FMOD_MASK, HIGHLIGHT, _widget::state, STATE_MASK, textbox::tbft, theme_prop_names, URGENT, WIDGET, textbox::widget, widget_queue_redraw(), and widget_set_state().

Referenced by rofi_view_switch_mode(), textbox_create(), and update_callback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_get_desired_width()

int textbox_get_desired_width ( widget * wid,
const int height )
Parameters
widThe handle to the textbox.
heightThe height we want the desired width for

TODO: is this deprecated by widget::get_desired_width

Returns
the desired width of the textbox.

◆ textbox_get_estimated_ch()

double textbox_get_estimated_ch ( void )

Estimate the width of a 0.

Returns
the width of a 0 in pixels.

Definition at line 946 of file textbox.c.

References ch_width, and p_metrics.

Referenced by get_pixels().

Here is the caller graph for this function:

◆ textbox_get_estimated_char_height()

double textbox_get_estimated_char_height ( void )

Estimate the height of a character.

Returns
the height of a character in pixels.

Caching for the estimated character height. (em)

Definition at line 932 of file textbox.c.

References TBFontConfig::height, and tbfc_default.

Referenced by get_pixels().

Here is the caller graph for this function:

◆ textbox_get_estimated_char_width()

double textbox_get_estimated_char_width ( void )

Estimate the width of a character.

Returns
the width of a character in pixels.

Definition at line 936 of file textbox.c.

References char_width, and p_metrics.

◆ textbox_get_estimated_height()

int textbox_get_estimated_height ( const textbox * tb,
int eh )
Parameters
tbHandle to the textbox
ehThe number of rows to display

Get the (estimated) with of a character, can be used to calculate window width. This includes padding.

Returns
the estimated width of a character.

Definition at line 954 of file textbox.c.

References TBFontConfig::height, textbox::tbfc, WIDGET, and widget_padding_get_padding_height().

Referenced by _textbox_get_height(), and textbox_get_desired_height().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_get_font_height()

int textbox_get_font_height ( const textbox * tb)
Parameters
tbHandle to the textbox

Get the height of the rendered string.

Returns
the height of the string in pixels.

Definition at line 919 of file textbox.c.

References textbox::layout.

Referenced by textbox_get_height().

Here is the caller graph for this function:

◆ textbox_get_font_width()

int textbox_get_font_width ( const textbox * tb)
Parameters
tbHandle to the textbox

Get the width of the rendered string.

Returns
the width of the string in pixels.

Definition at line 925 of file textbox.c.

References textbox::layout.

Referenced by textbox_editable_trigger_action(), textbox_get_desired_width(), textbox_get_width(), and textbox_moveresize().

Here is the caller graph for this function:

◆ textbox_get_height()

int textbox_get_height ( const textbox * tb)
Parameters
tbHandle to the textbox

Get the height of the textbox

Returns
the height of the textbox in pixels.

Definition at line 914 of file textbox.c.

References textbox_get_font_height(), WIDGET, and widget_padding_get_padding_height().

Referenced by textbox_moveresize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_get_pango_attributes()

PangoAttrList * textbox_get_pango_attributes ( textbox * tb)
Parameters
tbHandle to the textbox

Get the list of currently active pango attributes.

Returns
the pango attributes

Definition at line 344 of file textbox.c.

References textbox::layout.

Referenced by update_callback().

Here is the caller graph for this function:

◆ textbox_get_visible_text()

const char * textbox_get_visible_text ( const textbox * tb)
Parameters
tbHandle to the textbox
Returns
the visible text.

Definition at line 338 of file textbox.c.

References textbox::layout.

Referenced by update_callback().

Here is the caller graph for this function:

◆ textbox_insert()

void textbox_insert ( textbox * tb,
const int char_pos,
const char * str,
const int slen )
Parameters
tbHandle to the textbox
char_posThe position to insert the string at
strThe string to insert.
slenThe length of the string.

Insert the string str at position pos.

Definition at line 658 of file textbox.c.

References textbox::blink, textbox::changed, and textbox::text.

Referenced by textbox_append_text().

Here is the caller graph for this function:

◆ textbox_keybinding()

◆ textbox_moveresize()

void textbox_moveresize ( textbox * tb,
int x,
int y,
int w,
int h )
Parameters
tbHandle to the textbox
xThe new horizontal position to place with textbox
yThe new vertical position to place with textbox
wThe new width of the textbox
hThe new height of the textbox

Move and resize the textbox. TODO remove for widget_resize and widget_move

Definition at line 393 of file textbox.c.

References textbox::emode, textbox::flags, _widget::h, textbox::layout, TB_AUTOHEIGHT, TB_AUTOWIDTH, TB_EDITABLE, TB_WRAP, textbox_get_font_width(), textbox_get_height(), _widget::w, WIDGET, textbox::widget, widget_padding_get_padding_width(), widget_queue_redraw(), _widget::x, and _widget::y.

Referenced by listview_create(), textbox_resize(), and textbox_text().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_set_ellipsize()

void textbox_set_ellipsize ( textbox * tb,
PangoEllipsizeMode mode )
Parameters
tbHandle to the textbox
modeThe PangoEllipsizeMode to use displaying the text in the textbox

Set the ellipsizing mode used on the string.

Definition at line 981 of file textbox.c.

References textbox::emode, textbox::flags, textbox::layout, TB_WRAP, WIDGET, and widget_queue_redraw().

Referenced by listview_set_ellipsize_start(), and listview_toggle_ellipsizing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_set_pango_attributes()

void textbox_set_pango_attributes ( textbox * tb,
PangoAttrList * list )
Parameters
tbHandle to the textbox
listNew pango attributes

Sets list as active pango attributes.

Definition at line 350 of file textbox.c.

References textbox::layout.

Referenced by update_callback().

Here is the caller graph for this function:

◆ textbox_set_pango_context()

void textbox_set_pango_context ( const char * font,
PangoContext * p )
Parameters
fontThe name of the font used.
pThe new default PangoContext

Set the default pango context (with font description) for all textboxes.

Definition at line 871 of file textbox.c.

References default_font_name, TBFontConfig::height, TBFontConfig::metrics, p_context, p_metrics, tbfc_cache, and tbfc_default.

Referenced by __create_window().

Here is the caller graph for this function:

◆ textbox_setup()

void textbox_setup ( void )

Setup the cached fonts. This is required to do before any of the textbox_ functions is called. Clean with textbox_cleanup()

Definition at line 864 of file textbox.c.

References tbfc_cache, and tbfc_entry_free().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ textbox_text()