libcdos-fw
CFWidget.h
1 #ifndef __CF_WIDGET_H__
2 #define __CF_WIDGET_H__
3 
4 #include <Core/CFDefines.h>
5 #include <Core/CFObject.h>
6 #include <Core/CFTypes.h>
7 #include <Gui/CFEnums.h>
8 #include <cairomm/cairomm.h>
9 #include <gdkmm.h>
10 #include <sigc++/sigc++.h>
11 
12 CF_NAMESPACE_BEGIN
13 
25 class CFWidget : public CFObject {
26 public:
27 
33  virtual ~CFWidget();
34 
52  void setEvents (Gdk::EventMask events);
53 
60  void addEvents (Gdk::EventMask events);
61 
69  int getAllocatedWidth();
70 
78  int getAllocatedHeight();
79 
96  void setSizeRequest(int width=-1, int height=-1);
97 
103  void queueDraw();
104 
110  void queueDrawArea(int x, int y, int width, int height);
111 
117  void reparent(CFWidget& new_parent);
118 
125  void setCanFocus(bool can_focus = true);
126 
134  bool getCanFocus();
135 
143  bool hasFocus();
144 
151  bool isFocus();
152 
161  void grabFocus ();
162 
171  virtual bool isContainer();
172 
180  void setVisible(bool visible = true);
181 
192  bool getVisible();
193 
203  bool isVisible();
204 
216  void show();
217 
222  void showAll();
223 
229  void hide();
230 
236  void setName(const Glib::ustring& name);
237 
243  void setHalign(CFAlign align);
244 
250  CFAlign getHalign();
251 
257  void setValign(CFAlign align);
258 
264  CFAlign getValign();
265 
271  void setTooltipText(const Glib::ustring& text);
272 
278  Glib::ustring getTooltipText();
279 
287  void setTooltipMarkup(const Glib::ustring& markup);
288 
294  Glib::ustring getTooltipMarkup();
295 
301  void setHasTooltip(bool has_tooltip = true);
302 
308  bool getHasTooltip();
309 
317  void setSensitive(bool sensitive = true);
318 
328  bool getSensitive();
329 
336  bool isSensitive();
337 
343  void setMarginLeft(int margin);
344 
350  int getMarginLeft();
351 
357  void setMarginRight(int margin);
358 
364  int getMarginRight();
365 
371  void setMarginTop(int margin);
372 
378  int getMarginTop();
379 
385  void setMarginBottom(int margin);
386 
392  int getMarginBottom();
393 
394  virtual void addCssStylePath(const Glib::ustring& path, CFUInt priority);
395  virtual void addCssStyleData(const Glib::ustring& data, CFUInt priority);
396 
405  virtual void addCssStyleName(const Glib::ustring& name);
406 
416  virtual void addCssStyleFromPath(const Glib::ustring& css_file_path,
417  const Glib::ustring& name,
418  CFUInt priority);
419 
424  virtual void listCssStyle();
425 
431  virtual std::vector<Glib::ustring> getCssStyleVector();
432 
438  virtual void removeCssStyle(const Glib::ustring& name);
439 
440  Glib::RefPtr< Gdk::Window > getWindow();
441 
442 public:
443  sigc::signal< bool, const ::Cairo::RefPtr< ::Cairo::Context >& >
444  signalDraw();
445  sigc::signal< bool, GdkEvent* > signalEvent();
446  sigc::signal< bool, GdkEventButton* > signalButtonPressEvent();
447  sigc::signal< bool, GdkEventButton* > signalButtonReleaseEvent();
448  sigc::signal< bool, GdkEventAny* > signalDeleteEvent();
449 
450  sigc::signal< bool, GdkEventKey* > signalKeyPressEvent();
451  sigc::signal< bool, GdkEventKey* > signalKeyReleaseEvent();
452 
453  sigc::signal< void > signalShow();
454 
455 protected:
456 
457  virtual void onRealObjectInit();
458  virtual void onRealObjectFinalize();
459 
460  virtual bool onDraw(const ::Cairo::RefPtr< ::Cairo::Context > & cr);
461  virtual bool onEvent(GdkEvent* event);
462  virtual bool onButtonPressEvent(GdkEventButton* event);
463  virtual bool onButtonReleaseEvent(GdkEventButton* event);
464  virtual bool onDeleteEvent(GdkEventAny* event);
465 
466  virtual bool onKeyPressEvent(GdkEventKey* event);
467  virtual bool onKeyReleaseEvent(GdkEventKey* event);
468 
469  virtual void onShow();
470 
471  CFWidget();
472 
473 private:
474  sigc::signal< bool, const ::Cairo::RefPtr< ::Cairo::Context >& > m_drawSignal;
475  sigc::signal< bool, GdkEvent* > m_eventSignal;
476  sigc::signal< bool, GdkEventButton* > m_buttonPressEventSignal;
477  sigc::signal< bool, GdkEventButton* > m_buttonReleaseEventSignal;
478  sigc::signal< bool, GdkEventAny* > m_deleteEventSignal;
479 
480  sigc::signal< bool, GdkEventKey* > m_keyPressEventSignal;
481  sigc::signal< bool, GdkEventKey* > m_keyReleaseEventSignal;
482 
483  sigc::signal< void > m_showSignal;
484 };
485 
486 CF_NAMESPACE_END
487 
488 #endif // __CF_WIDGET_H__
virtual void listCssStyle()
查看样式列表
int getAllocatedHeight()
返回当前给控件分配的高度。
bool isFocus()
判断控件是否当前拥有焦点的控件。
virtual void removeCssStyle(const Glib::ustring &name)
通过样式名移除样式
int getMarginTop()
获取控件的上边距
bool getCanFocus()
获取控件是否可以拥有输入焦点。
bool hasFocus()
判断控件是否拥有全局输入焦点。
void setHalign(CFAlign align)
设置控件横向对齐方式。
CFAlign getHalign()
获取横向对齐方式。
virtual ~CFWidget()
析构函数
void setName(const Glib::ustring &name)
设置控件的名称,以便于使用CSS文件来控制样式。
void setVisible(bool visible=true)
设置控件的可见状态。
CFAlign getValign()
获取纵向对齐方式。
int getMarginRight()
获取控件的右边距
所有可视控件的基类,抽象类。
Definition: CFWidget.h:25
void setEvents(Gdk::EventMask events)
设置控件的事件监听掩码。
bool isVisible()
判断本控件以及控件所在容器(直到顶层容器)是否为可见状态。
virtual void onRealObjectFinalize()
对象解除绑定前的回调函数。
void setValign(CFAlign align)
设置控件纵向对齐方式。
void queueDraw()
请求重新描画控件
void addEvents(Gdk::EventMask events)
将 events 位字段添加到控件的事件监听掩码中。
virtual bool isContainer()
判断控件是否为容器。
void setHasTooltip(bool has_tooltip=true)
设置是否使用提示信息。
void setMarginLeft(int margin)
设置控件的左边距
void setCanFocus(bool can_focus=true)
指定控件是否可以获取输入焦点。
结构与枚举类型定义.
void setTooltipMarkup(const Glib::ustring &markup)
设置提示信息的内容。
int getAllocatedWidth()
返回当前给控件分配的宽度。
Glib::ustring getTooltipText()
获取当前控件提示信息的内容。
virtual void onRealObjectInit()
对象绑定后进行初始化的回调函数。
bool getSensitive()
获取控件可用状态
virtual void addCssStyleFromPath(const Glib::ustring &css_file_path, const Glib::ustring &name, CFUInt priority)
通过自定义css样式文件路径设置样式
int getMarginBottom()
获取控件的下边距
void setTooltipText(const Glib::ustring &text)
设置提示信息的内容。
Glib::ustring getTooltipMarkup()
获取当前控件提示信息的内容。
void showAll()
显示控件以及控件所容纳的所有控件(包括所容纳容器控件的所有子控件)
void hide()
隐藏控件
int getMarginLeft()
获取控件的左边距
CFAlign
在水平或者垂直方向上,控制控件如何处理额外的空间
Definition: CFEnums.h:35
void setSensitive(bool sensitive=true)
设置控件是否可用。
void setSizeRequest(int width=-1, int height=-1)
设置控件的最小尺寸。
bool getVisible()
判断本控件是否为可见状态。
void setMarginTop(int margin)
设置控件的上边距
virtual std::vector< Glib::ustring > getCssStyleVector()
获取控件样式列表
bool isSensitive()
获取控件及其所在容器控件的可用状态
void grabFocus()
控件获取键盘输入焦点。
void queueDrawArea(int x, int y, int width, int height)
请求重新描画的指定区域
void setMarginBottom(int margin)
设置控件的下边距
bool getHasTooltip()
获取是否使用提示信息。
void reparent(CFWidget &new_parent)
将控件从当前的容器中移动到 newParent 指定的容器中。
void setMarginRight(int margin)
设置控件的右边距
支持库的基础类。
Definition: CFObject.h:24
void show()
显示控件。