libcdos-fw
|
所有可视控件的基类,抽象类。 更多...
#include <CFWidget.h>
Public 成员函数 | |
virtual void | addCssStyleData (const Glib::ustring &data, CFUInt priority) |
virtual void | addCssStylePath (const Glib::ustring &path, CFUInt priority) |
void | addEvents (Gdk::EventMask events) |
将 events 位字段添加到控件的事件监听掩码中。 更多... | |
int | getAllocatedHeight () |
返回当前给控件分配的高度。 更多... | |
int | getAllocatedWidth () |
返回当前给控件分配的宽度。 更多... | |
bool | getCanFocus () |
获取控件是否可以拥有输入焦点。 更多... | |
CFAlign | getHalign () |
获取横向对齐方式。 更多... | |
bool | getHasTooltip () |
获取是否使用提示信息。 更多... | |
int | getMarginBottom () |
获取控件的下边距 更多... | |
int | getMarginLeft () |
获取控件的左边距 更多... | |
int | getMarginRight () |
获取控件的右边距 更多... | |
int | getMarginTop () |
获取控件的上边距 更多... | |
bool | getSensitive () |
获取控件可用状态 更多... | |
Glib::ustring | getTooltipMarkup () |
获取当前控件提示信息的内容。 更多... | |
Glib::ustring | getTooltipText () |
获取当前控件提示信息的内容。 更多... | |
CFAlign | getValign () |
获取纵向对齐方式。 更多... | |
bool | getVisible () |
判断本控件是否为可见状态。 更多... | |
void | grabFocus () |
控件获取键盘输入焦点。 更多... | |
bool | hasFocus () |
判断控件是否拥有全局输入焦点。 更多... | |
void | hide () |
隐藏控件 更多... | |
virtual bool | isContainer () |
判断控件是否为容器。 更多... | |
bool | isFocus () |
判断控件是否当前拥有焦点的控件。 更多... | |
bool | isSensitive () |
获取控件及其所在容器控件的可用状态 更多... | |
bool | isVisible () |
判断本控件以及控件所在容器(直到顶层容器)是否为可见状态。 更多... | |
void | queueDraw () |
请求重新描画控件 更多... | |
void | queueDrawArea (int x, int y, int width, int height) |
请求重新描画的指定区域 更多... | |
void | reparent (CFWidget &new_parent) |
将控件从当前的容器中移动到 newParent 指定的容器中。 更多... | |
void | setCanFocus (bool can_focus=true) |
指定控件是否可以获取输入焦点。 更多... | |
void | setEvents (Gdk::EventMask events) |
设置控件的事件监听掩码。 更多... | |
void | setHalign (CFAlign align) |
设置控件横向对齐方式。 更多... | |
void | setHasTooltip (bool has_tooltip=true) |
设置是否使用提示信息。 更多... | |
void | setMarginBottom (int margin) |
设置控件的下边距 更多... | |
void | setMarginLeft (int margin) |
设置控件的左边距 更多... | |
void | setMarginRight (int margin) |
设置控件的右边距 更多... | |
void | setMarginTop (int margin) |
设置控件的上边距 更多... | |
void | setName (const Glib::ustring &name) |
设置控件的名称,以便于使用CSS文件来控制样式。 更多... | |
void | setSensitive (bool sensitive=true) |
设置控件是否可用。 更多... | |
void | setSizeRequest (int width=-1, int height=-1) |
设置控件的最小尺寸。 更多... | |
void | setTooltipMarkup (const Glib::ustring &markup) |
设置提示信息的内容。 更多... | |
void | setTooltipText (const Glib::ustring &text) |
设置提示信息的内容。 更多... | |
void | setValign (CFAlign align) |
设置控件纵向对齐方式。 更多... | |
void | setVisible (bool visible=true) |
设置控件的可见状态。 更多... | |
void | show () |
显示控件。 更多... | |
void | showAll () |
显示控件以及控件所容纳的所有控件(包括所容纳容器控件的所有子控件) 更多... | |
virtual | ~CFWidget () |
析构函数 更多... | |
![]() | |
void * | getObj () |
获取支持库类实例所绑定的对象实例。 更多... | |
virtual | ~CFObject () |
析构函数。 更多... | |
: 类名的应用,通常在css文件中以'.'开头; | |
为控件设置样式,该函数仅对当前主题css文件样式中的类有效。 | |
virtual void | addCssStyleName (const Glib::ustring &name) |
virtual void | addCssStyleFromPath (const Glib::ustring &css_file_path, const Glib::ustring &name, CFUInt priority) |
通过自定义css样式文件路径设置样式 更多... | |
virtual void | listCssStyle () |
查看样式列表 更多... | |
virtual std::vector< Glib::ustring > | getCssStyleVector () |
获取控件样式列表 更多... | |
virtual void | removeCssStyle (const Glib::ustring &name) |
通过样式名移除样式 更多... | |
Glib::RefPtr< Gdk::Window > | getWindow () |
sigc::signal< bool, const ::Cairo::RefPtr< ::Cairo::Context > &> | signalDraw () |
sigc::signal< bool, GdkEvent *> | signalEvent () |
sigc::signal< bool, GdkEventButton *> | signalButtonPressEvent () |
sigc::signal< bool, GdkEventButton *> | signalButtonReleaseEvent () |
sigc::signal< bool, GdkEventAny *> | signalDeleteEvent () |
sigc::signal< bool, GdkEventKey *> | signalKeyPressEvent () |
sigc::signal< bool, GdkEventKey *> | signalKeyReleaseEvent () |
sigc::signal< void > | signalShow () |
virtual void | onRealObjectInit () |
对象绑定后进行初始化的回调函数。 更多... | |
virtual void | onRealObjectFinalize () |
对象解除绑定前的回调函数。 更多... | |
virtual bool | onDraw (const ::Cairo::RefPtr< ::Cairo::Context > &cr) |
virtual bool | onEvent (GdkEvent *event) |
virtual bool | onButtonPressEvent (GdkEventButton *event) |
virtual bool | onButtonReleaseEvent (GdkEventButton *event) |
virtual bool | onDeleteEvent (GdkEventAny *event) |
virtual bool | onKeyPressEvent (GdkEventKey *event) |
virtual bool | onKeyReleaseEvent (GdkEventKey *event) |
virtual void | onShow () |
CFWidget () | |
额外继承的成员函数 | |
![]() | |
static CFObject * | getCFObject (void *realObj) |
通过对象实例获取所对应的 CFObject的子类对象实例。 更多... | |
![]() | |
CFObject () | |
构造函数 更多... | |
void | setRealObject (void *obj) |
将自身实例与需要使用的对象实例进行绑定。 更多... | |
所有可视控件的基类,抽象类。
因为该类为所有可视控件的基类,所以包含了所有可视控件类的通用属性
与函数。本类为抽象类,无法被直接实例化。
可视控件的一个重要部分是 *_event 信号以及所有控件需要用到的虚函数。
这些信号是从Gdk或XLib中发上来的; 可以通过继承并重写这些虚函数来跟踪
控件的对应的事件与信号。需要注意的是:需要监听某个event, 必须先设置
对应的event mask。
|
virtual |
析构函数
对象被销毁的时候会被自动调用。
|
virtual |
通过自定义css样式文件路径设置样式
[in] | css_file_path | css文件的绝对路径 |
[in] | name | 既可以是类选择器(在css中以'.'开头),也可以是id选择器(在css中以'#'开头) |
[in] | priority | 显示权重 |
为控件设置样式,该函数无视当前主题样式,可以自定义文件路径。
void CFWidget::addEvents | ( | Gdk::EventMask | events | ) |
int CFWidget::getAllocatedHeight | ( | ) |
返回当前给控件分配的高度。
该函数一般使用在 signalDraw() 的槽函数中。
int CFWidget::getAllocatedWidth | ( | ) |
返回当前给控件分配的宽度。
该函数一般使用在 signalDraw() 的槽函数中。
bool CFWidget::getCanFocus | ( | ) |
|
virtual |
获取控件样式列表
CFAlign CFWidget::getHalign | ( | ) |
获取横向对齐方式。
bool CFWidget::getHasTooltip | ( | ) |
获取是否使用提示信息。
int CFWidget::getMarginBottom | ( | ) |
获取控件的下边距
int CFWidget::getMarginLeft | ( | ) |
获取控件的左边距
int CFWidget::getMarginRight | ( | ) |
获取控件的右边距
int CFWidget::getMarginTop | ( | ) |
获取控件的上边距
bool CFWidget::getSensitive | ( | ) |
获取控件可用状态
本函数只会获取控件的可用状态,不会判断所在容器的可用状态,
如果想获取控件的父容器是否也是可见状态, 请使用 isSensitive() 来替代。
Glib::ustring CFWidget::getTooltipMarkup | ( | ) |
获取当前控件提示信息的内容。
Glib::ustring CFWidget::getTooltipText | ( | ) |
获取当前控件提示信息的内容。
CFAlign CFWidget::getValign | ( | ) |
获取纵向对齐方式。
bool CFWidget::getVisible | ( | ) |
判断本控件是否为可见状态。
如果想获取控件的父容器是否也是可见状态, 请使用 isVisible() 来替代。
该函数不会检查控件是否被遮挡。
void CFWidget::grabFocus | ( | ) |
控件获取键盘输入焦点。
该控件必须是可获得焦点的控件, 例如:CFEntry等; 类似 CFFrame 的控件无效。
该函数的调用需要控件执行完 realized 和 mapped 过程。
在控件创建完成立即使用本函数获取焦点可能会失败并导致严重的警告。
bool CFWidget::hasFocus | ( | ) |
void CFWidget::hide | ( | ) |
隐藏控件
与 show() 的效果相反, 能将控件隐藏(对用户不可见)
|
virtual |
判断控件是否为容器。
只有直接或间接继承自 CFContainer 的类型,该函数会返回true, 其它控件则返回false。
被 CFContainer 重载.
bool CFWidget::isFocus | ( | ) |
判断控件是否当前拥有焦点的控件。
bool CFWidget::isSensitive | ( | ) |
获取控件及其所在容器控件的可用状态
bool CFWidget::isVisible | ( | ) |
判断本控件以及控件所在容器(直到顶层容器)是否为可见状态。
该函数不会检查控件是否被遮挡。
|
virtual |
查看样式列表
|
protectedvirtual |
对象解除绑定前的回调函数。
若需要在类实例解除绑定前, 对使用类进行信号解除绑定或其它必要操作时,需要重写父类的 onRealObjectFinalize() 函数,
在子类继承并重写父类的 onRealObjectFinalize() 函数时,请在该函数返回前调用父类的 onRealObjectFinalize() 函数,以便
父类进行必要的操作。
重载 CFObject .
被 CFPlacesSidebar, CFListWidget, CFScrolledView, CFRange, CFMenuItem, CFMenuShell, CFSwitch, CFRadioButton, CFCheckButton , 以及 CFButton 重载.
|
protectedvirtual |
对象绑定后进行初始化的回调函数。
在使用 setRealObject() 绑定对象实例后, 本回调函数即会被调用,
若需要在类实例绑定后, 对使用类进行信号绑定或其它必要操作时,需要重写父类的 onRealObjectInit() 函数,
在子类继承并重写父类的 onRealObjectInit() 函数时,请在其内部调用父类的 onRealObjectInit() 函数,以便
父类进行必要的操作。
重载 CFObject .
被 CFPlacesSidebar, CFListWidget, CFScrolledView, CFRange, CFMenuItem, CFMenuShell, CFSwitch, CFRadioButton, CFButton, CFCheckButton , 以及 CFEntry 重载.
void CFWidget::queueDraw | ( | ) |
请求重新描画控件
与调用 queueDrawArea() 来请求描画控件整个区域的效果一样。
void CFWidget::queueDrawArea | ( | int | x, |
int | y, | ||
int | width, | ||
int | height | ||
) |
请求重新描画的指定区域
重新描画以(x, y)坐标起始,宽度为width, 高度为height所组成的矩形区域。
|
virtual |
通过样式名移除样式
[in] | name | 样式名 |
void CFWidget::reparent | ( | CFWidget & | new_parent | ) |
将控件从当前的容器中移动到 newParent 指定的容器中。
[in] | new_parent | 一个CFContainer类型的目标容器。 |
void CFWidget::setCanFocus | ( | bool | can_focus = true | ) |
void CFWidget::setEvents | ( | Gdk::EventMask | events | ) |
设置控件的事件监听掩码。
事件监听掩码决定了控件会接收到哪些事件消息。
每个控件都可能有不同的默认事件监听掩码, 而
修改事件监听掩码可能会干扰控件的功能,所以请
小心使用。
该函数需要在控件未执行realized时被调用。可以
若控件已经执行完realized过程或想要保持已存在
的掩码, 请考虑使用控件的 add_events()。
该函数对于无窗口的控件无效, 因此这些控件若想要
监听/收取事件, 则需要将它们放到 CFEventBox 中,
并监听/收取 CFEventBox 的事件。
[in] | events | 需要监听/收取的事件掩码。 |
void CFWidget::setHalign | ( | CFAlign | align | ) |
设置控件横向对齐方式。
[in] | align | 横向对齐方式。 |
void CFWidget::setHasTooltip | ( | bool | has_tooltip = true | ) |
设置是否使用提示信息。
[in] | has_tooltip | 是否使用提示信息。 |
void CFWidget::setMarginBottom | ( | int | margin | ) |
设置控件的下边距
[in] | margin | 下边距值,以像素为单位。 |
void CFWidget::setMarginLeft | ( | int | margin | ) |
设置控件的左边距
[in] | margin | 左边距值,以像素为单位。 |
void CFWidget::setMarginRight | ( | int | margin | ) |
设置控件的右边距
[in] | margin | 右边距值,以像素为单位。 |
void CFWidget::setMarginTop | ( | int | margin | ) |
设置控件的上边距
[in] | margin | 上边距值,以像素为单位。 |
void CFWidget::setName | ( | const Glib::ustring & | name | ) |
设置控件的名称,以便于使用CSS文件来控制样式。
[in] | name | 控件的名称。 |
void CFWidget::setSensitive | ( | bool | sensitive = true | ) |
设置控件是否可用。
设置控件的可用状态, 若设置为不可用状态,则控件无法接收到各种事件消息, 并被置灰。
[in] | sensitive | 可用状态。 |
void CFWidget::setSizeRequest | ( | int | width = -1 , |
int | height = -1 |
||
) |
设置控件的最小尺寸。
可以使用该函数设置控件最小尺寸。
大部分情况, 使用 CFWindow::setDefaultSize() 设置顶层窗口的大小更好;
设置其默认尺寸仍然允许缩小窗口。 使用该函数可以强制CFWindow 缩放时不会小于
width 和 height所指定的尺寸。当处理窗口尺寸时, CFWindow::setgeometryHints()
会更好用。
该函数参数指定了控件的最小尺寸。不过在一些特殊的情况,控件可能会被分配小于该尺寸, 但
在大部分情况下, 控件分配的尺寸会比该尺寸大。
[in] | width | 控件的最小宽度, -1 则取系统默认的最小宽度。 |
[in] | height | 控件的最小高度, -1 则取系统默认的最小高度。 |
void CFWidget::setTooltipMarkup | ( | const Glib::ustring & | markup | ) |
设置提示信息的内容。
该函数markup参数,支持使用 Pango 文本标记语言格式的字符串。
[in] | markup | 提示信息的内容, 支持使用 Pango 文本标记语言格式的字符串。 |
void CFWidget::setTooltipText | ( | const Glib::ustring & | text | ) |
设置提示信息的内容。
[in] | text | 提示信息的内容。 |
void CFWidget::setValign | ( | CFAlign | align | ) |
设置控件纵向对齐方式。
[in] | align | 纵向对齐方式。 |
void CFWidget::setVisible | ( | bool | visible = true | ) |
设置控件的可见状态。
[in] | visible | 控件是否将被显示。 |
void CFWidget::show | ( | ) |
void CFWidget::showAll | ( | ) |
显示控件以及控件所容纳的所有控件(包括所容纳容器控件的所有子控件)