cwidget
0.5.17
|
The basic widget interface. More...
#include <widget.h>
Public Types | |
typedef std::list< binding_connection >::iterator | key_connection |
Public Member Functions | |
void | incref () |
void | decref () |
void | show () |
virtual void | show_all () |
void | hide () |
void | toggle_visible () |
void | set_visible (bool _visible) |
bool | dispatch_key (const config::key &k) |
virtual void | dispatch_mouse (short id, int x, int y, int z, mmask_t bstate) |
virtual int | width_request ()=0 |
virtual int | height_request (int width)=0 |
Calculate the desired height of the widget, given its width. More... | |
void | alloc_size (int x, int y, int w, int h) |
Set the size and location in the parent of this widget. More... | |
virtual bool | focus_me () |
bool | get_isfocussed () |
void | set_owner (container *w) |
void | display (const style &st) |
Display this widget in the given style environment. More... | |
int | timeout (int msecs) |
virtual void | destroy () |
Destroys the visible representation of this widget and disconnects it from any children that it may have. | |
util::ref_ptr< container > | get_owner () |
virtual bool | get_cursorvisible ()=0 |
virtual point | get_cursorloc ()=0 |
int | get_startx () |
int | get_starty () |
int | get_width () |
int | get_height () |
bool | get_visible () |
void | sync () |
int | scroll (int n=1) |
int | addch (chtype ch) |
int | mvaddch (int y, int x, chtype ch) |
int | add_wch (wchar_t wch) |
int | add_wch (const cchar_t *cch) |
int | mvadd_wch (int y, int x, wchar_t wch) |
int | mvadd_wch (int y, int x, const cchar_t *cch) |
int | addstr (const char *str) |
int | addnstr (const char *str, int n) |
int | mvaddstr (int y, int x, const char *str) |
int | mvaddnstr (int y, int x, const char *str, int n) |
int | addstr (const wchar_t *str) |
int | addnstr (const wchar_t *str, int n) |
int | mvaddstr (int y, int x, const wchar_t *str) |
int | mvaddnstr (int y, int x, const wchar_t *str, int n) |
int | addstr (const std::wstring &str) |
int | addnstr (const std::wstring &str, int n) |
int | mvaddstr (int y, int x, const std::wstring &str) |
int | mvaddnstr (int y, int x, const std::wstring &str, int n) |
int | addstr (const wchstring &str) |
int | addnstr (const wchstring &str, int n) |
int | mvaddstr (int y, int x, const wchstring &str) |
int | mvaddnstr (int y, int x, const wchstring &str, int n) |
int | addstr (const chstring &str) |
int | addnstr (const chstring &str, int n) |
int | mvaddstr (int y, int x, const chstring &str) |
int | mvaddnstr (int y, int x, const chstring &str, int n) |
int | attroff (int attrs) |
int | attron (int attrs) |
int | attrset (int attrs) |
void | bkgdset (const chtype ch) |
int | bkgd (const chtype ch) |
chtype | getbkgd () |
int | border (chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br) |
int | box (chtype verch, chtype horch) |
int | hline (chtype ch, int n) |
int | vline (chtype ch, int n) |
int | mvhline (int y, int x, chtype ch, int n) |
int | mvvline (int y, int x, chtype ch, int n) |
int | delch () |
int | mvdelch (int y, int x) |
int | deleteln () |
int | insdelln (int n) |
int | insertln () |
int | echochar (chtype ch) |
int | move (int y, int x) |
void | getyx (int &y, int &x) |
void | getbegyx (int &y, int &x) |
void | getmaxyx (int &y, int &x) |
int | getmaxy () |
int | getmaxx () |
void | show_string_as_progbar (int x, int y, const std::wstring &s, const style &st1, const style &st2, int size1, int totalsize) |
void | display_header (std::wstring s, const style &st) |
void | display_status (std::wstring s, const style &st) |
int | erase () |
int | clear () |
int | clrtobot () |
int | clrtoeol () |
int | keypad (bool bf) |
int | meta (bool bf) |
bool | enclose (int y, int x) |
void | set_opaque (bool opaque) |
Enable or disable clearing the background before displaying the widget. More... | |
void | set_bg_style (const style &new_style) |
Update this widget's basic style to the given value. More... | |
void | apply_style (const style &st) |
Set the display attributes of our associated window directly from the given style. More... | |
key_connection | connect_key (const std::string &key, config::keybindings *bindings, const sigc::slot0< void > &slot) |
key_connection | connect_key_post (const std::string &key, config::keybindings *bindings, const sigc::slot0< void > &slot) |
void | disconnect_key (key_connection c) |
void | disconnect_key_post (key_connection c) |
Static Public Member Functions | |
static void | handle_pending_deletes () |
Protected Member Functions | |
cwindow | get_win () |
virtual void | paint (const style &st)=0 |
Display this widget. More... | |
virtual bool | handle_key (const config::key &k) |
Handles a keypress in this widget. More... | |
void | cleanup () |
Handle cleanup when the reference count goes to 0. More... | |
Friends | |
class | container |
bool | toplevel::poll () |
void | toplevel::mainloop (int) |
void | toplevel::redraw () |
util::ref_ptr< widget > | toplevel::settoplevel (const util::ref_ptr< widget > &) |
void | toplevel::suspend_without_signals () |
void | toplevel::resume () |
void | toplevel::updatecursornow () |
void | toplevel::handleresize () |
The basic widget interface.
Note that due to the current reference counting implementation, this is not presently threadsafe.
void cwidget::widgets::widget::alloc_size | ( | int | x, |
int | y, | ||
int | w, | ||
int | h | ||
) |
Set the size and location in the parent of this widget.
This routine should be called by the parent to actually resize and/or move the widget around. There is no guarantee that the new width and height bear any relation to what the _request functions asked for, although the parent is expected to make a best-effort attempt to give a widget its desired size.
As a special case, calling alloc_size(0, 0, 0, 0) indicates that the widget has no allocation at all.
x | the new x location within the parent |
y | the new y location within the parent |
w | the new width of the widget |
h | the new height of the widget |
Referenced by cwidget::widgets::center::height_request(), cwidget::widgets::frame::height_request(), and cwidget::widgets::size_box::height_request().
void cwidget::widgets::widget::apply_style | ( | const style & | st | ) |
Set the display attributes of our associated window directly from the given style.
(it is expected that subclasses will use this to control what is output to the window)
References cwidget::style::get_attrs().
Referenced by cwidget::widgets::staticitem::paint(), cwidget::widgets::togglebutton::paint(), cwidget::widgets::button::paint(), cwidget::widgets::multiplex::paint(), cwidget::widgets::tree::paint(), cwidget::widgets::menubar::paint(), and cwidget::widgets::menu::paint().
|
protected |
Handle cleanup when the reference count goes to 0.
void cwidget::widgets::widget::display | ( | const style & | st | ) |
Display this widget in the given style environment.
This is an interface function only; subclasses should override paint() to control behavior (but should call display() on subwidgets).
st | the style environment in which this widget should be displayed. |
References cwidget::style::get_attrs().
Referenced by cwidget::widgets::frame::paint(), cwidget::toplevel::resume(), and cwidget::toplevel::update().
|
protectedvirtual |
Handles a keypress in this widget.
k | the key that was pressed (see keybindings.h). |
Reimplemented in cwidget::widgets::pager, cwidget::widgets::menu, cwidget::widgets::table, cwidget::widgets::editline, cwidget::widgets::menubar, cwidget::widgets::tree, cwidget::widgets::text_layout, cwidget::widgets::statuschoice, cwidget::widgets::button, and cwidget::widgets::passthrough.
Referenced by cwidget::widgets::passthrough::handle_key(), cwidget::widgets::button::handle_key(), cwidget::widgets::text_layout::handle_key(), cwidget::widgets::tree::handle_key(), cwidget::widgets::menubar::handle_key(), cwidget::widgets::editline::handle_key(), cwidget::widgets::menu::handle_key(), and cwidget::widgets::pager::handle_key().
|
pure virtual |
Calculate the desired height of the widget, given its width.
width | the width of this widget |
Implemented in cwidget::widgets::menu, cwidget::widgets::table, cwidget::widgets::editline, cwidget::widgets::pager, cwidget::widgets::tree, cwidget::widgets::menubar, cwidget::widgets::text_layout, cwidget::widgets::multiplex, cwidget::widgets::stacked, cwidget::widgets::button, cwidget::widgets::minibuf_win, cwidget::widgets::scrollbar, cwidget::widgets::statuschoice, cwidget::widgets::size_box, cwidget::widgets::label, cwidget::widgets::transient, cwidget::widgets::frame, and cwidget::widgets::center.
Referenced by cwidget::widgets::center::height_request(), cwidget::widgets::frame::height_request(), cwidget::widgets::transient::height_request(), and cwidget::widgets::size_box::height_request().
|
protectedpure virtual |
Display this widget.
st | the style environment in which the widget is to be displayed. |
Implemented in cwidget::widgets::menu, cwidget::widgets::table, cwidget::widgets::pager, cwidget::widgets::editline, cwidget::widgets::menubar, cwidget::widgets::tree, cwidget::widgets::text_layout, cwidget::widgets::multiplex, cwidget::widgets::button, cwidget::widgets::minibuf_win, cwidget::widgets::statuschoice, cwidget::widgets::scrollbar, cwidget::widgets::label, cwidget::widgets::togglebutton, cwidget::widgets::bin, cwidget::widgets::stacked, and cwidget::widgets::frame.
void cwidget::widgets::widget::set_bg_style | ( | const style & | new_style | ) |
Update this widget's basic style to the given value.
The style stack must be empty.
|
inline |
Enable or disable clearing the background before displaying the widget.
opaque | if true (the default setting), the widget's entire area will be overwritten with its background style prior to displaying it. |
|
pure virtual |
Implemented in cwidget::widgets::menu, cwidget::widgets::editline, cwidget::widgets::pager, cwidget::widgets::table, cwidget::widgets::tree, cwidget::widgets::menubar, cwidget::widgets::text_layout, cwidget::widgets::multiplex, cwidget::widgets::stacked, cwidget::widgets::button, cwidget::widgets::minibuf_win, cwidget::widgets::scrollbar, cwidget::widgets::statuschoice, cwidget::widgets::label, cwidget::widgets::size_box, cwidget::widgets::transient, cwidget::widgets::frame, and cwidget::widgets::center.
Referenced by cwidget::widgets::center::height_request(), cwidget::widgets::center::width_request(), cwidget::widgets::frame::width_request(), cwidget::widgets::transient::width_request(), and cwidget::widgets::size_box::width_request().