📄 dw_widget.h
字号:
/* This value is defined by the parent widget, and used for incremential * resizing. See Dw.txt for an explanation. */ gint parent_ref; /* the viewport in which the widget is shown */ struct _DwViewport *viewport; /* see definition at the beginning */ DwWidgetFlags flags; /* the current allocation: size and position, always relative to the * scrolled area! */ DwAllocation allocation; /* a_Dw_widget_size_request stores the result of the last call of * Dw_xxx_size_request here, don't read this directly, but call * a_Dw_widget_size_request. */ DwRequisition requisition; /* analogue to requisition */ DwExtremes extremes; HCURSOR cursor; /* todo: move this to style */ DwStyle *style; /* See p_Dw_widget_set_bg_color(). */ DwStyleColor *bg_color; /* See a_Dw_widget_set_button_sensitive(). */ gboolean button_sensitive; gboolean button_sensitive_set; /* A temporary pixmap used for clipping. See p_Dw_widget_will_clip(). */ BITMAP* clip_pixmap;};struct _DwWidgetClass{ GObjectClass parent_class; void (*size_request) (DwWidget *widget, DwRequisition *requisition); void (*get_extremes) (DwWidget *widget, DwExtremes *extremes); void (*size_allocate) (DwWidget *widget, DwAllocation *allocation); void (*mark_size_change) (DwWidget *widget, gint ref); void (*mark_extremes_change) (DwWidget *widget, gint ref); void (*set_width) (DwWidget *widget, gint32 width); void (*set_ascent) (DwWidget *widget, gint32 ascent); void (*set_descent) (DwWidget *widget, gint32 descent); void (*draw) (DwWidget *widget, HDC hdc, DwRectangle *area); void (*realize) (DwWidget *widget); void (*unrealize) (DwWidget *widget); void (*destroy) (DwWidget *widget); gboolean (*button_press_event) (DwWidget *widget, gint32 x, gint32 y, DWORD flags); gboolean (*button_release_event) (DwWidget *widget, gint32 x, gint32 y, DWORD flags); gboolean (*motion_notify_event) (DwWidget *widget, gint32 x, gint32 y, DWORD flags); gboolean (*enter_notify_event) (DwWidget *widget, DwWidget *last_widget, DWORD flags); gboolean (*leave_notify_event) (DwWidget *widget, DwWidget *next_widget, DWORD flags); DwIterator* (*iterator) (DwWidget*, gint32 mask, gboolean at_end);};GType a_Dw_widget_get_type (void);void a_Dw_widget_size_request (DwWidget *widget, DwRequisition *requisition);void a_Dw_widget_get_extremes (DwWidget *widget, DwExtremes *extremes);void a_Dw_widget_size_allocate (DwWidget *widget, DwAllocation *allocation);void a_Dw_widget_set_width (DwWidget *widget, gint32 width);void a_Dw_widget_set_ascent (DwWidget *widget, gint32 ascent);void a_Dw_widget_set_descent (DwWidget *widget, gint32 descent);void a_Dw_widget_draw (DwWidget *widget, HDC hdc, DwRectangle *area);void a_Dw_widget_realize (DwWidget *widget);void a_Dw_widget_unrealize (DwWidget *widget);void a_Dw_widget_destroy (DwWidget *widget);void a_Dw_widget_set_style (DwWidget *widget, DwStyle *style);void a_Dw_widget_set_cursor (DwWidget *widget, HCURSOR cursor);void a_Dw_widget_set_button_sensitive (DwWidget *widget, gboolean button_sensitive);DwWidget *a_Dw_widget_get_toplevel (DwWidget *widget);void a_Dw_widget_scroll_to (DwWidget *widget, DwHPosition hpos, DwVPosition vpos, gint32 x, gint32 y, gint32 width, gint32 height);/* iterators */DwIterator* a_Dw_widget_iterator (DwWidget *widget, gint mask, gboolean at_end);#define a_Dw_iterator_next(it) ((it) ? (it)->next(it) : FALSE)#define a_Dw_iterator_prev(it) ((it) ? (it)->prev(it) : FALSE)#define a_Dw_iterator_highlight(it, s, e, l) ((it) ? \ (it)->highlight(it, s, e, l) : (void)0)#define a_Dw_iterator_get_allocation(it, s, e, a) \ ((it) ? \ (it1)->get_allocation(it, s, e, a)\ : (void)0)#define a_Dw_iterator_clone(it) ((it) ? (it)->clone(it) : NULL)#define a_Dw_iterator_compare(it1, it2) ((it1)->compare(it1, it2))#define a_Dw_iterator_free(it) ((it) ? (it)->free(it) : (void)0)/* for convenience */#define a_Dw_iterator_unhighlight(it, l) ((it) ? \ (it)->highlight(it, -1, -1, l) : FALSE)void a_Dw_iterator_scroll_to (DwIterator *it1, DwIterator *it2, gint start, gint end, DwHPosition hpos, DwVPosition vpos);DwIterator* p_Dw_iterator_clone_std (DwIterator *it);void p_Dw_iterator_free_std (DwIterator *it);void p_Dw_iterator_highlight_std (DwIterator *it, gint from, gint start, DwHighlightLayer layer);void p_Dw_iterator_get_allocation_std (DwIterator *it, gint start, gint end, DwAllocation *allocation);DwIterator* p_Dw_iterator_clone_std_int (DwIterator *it);gint p_Dw_iterator_compare_std_int (DwIterator *it1, DwIterator *it2);/* for debugging */gchar* a_Dw_content_text (DwContent *content);gchar* a_Dw_content_html (DwContent *content);gchar* a_Dw_iterator_text (DwIterator *it);void a_Dw_widget_print_tree (DwWidget *widget);DwIterator* p_Dw_widget_text_iterator (DwWidget* widget, gint32 mask, gboolean at_end, gchar *text);gboolean p_Dw_iterator_text_next (DwIterator *it);gboolean p_Dw_iterator_text_prev (DwIterator *it);DwIterator* p_Dw_iterator_text_clone (DwIterator *it);gint p_Dw_iterator_text_compare (DwIterator *it1, DwIterator *it2);/* Only for Dw module */gint p_Dw_widget_intersect (DwWidget *widget, DwRectangle *area, DwRectangle *intersection);void p_Dw_widget_set_parent (DwWidget *widget, DwWidget *parent);gint32 p_Dw_widget_x_viewport_to_world (DwWidget *widget, gint16 viewport_x);gint32 p_Dw_widget_y_viewport_to_world (DwWidget *widget, gint16 viewport_y);gint16 p_Dw_widget_x_world_to_viewport (DwWidget *widget, gint32 world_x);gint16 p_Dw_widget_y_world_to_viewport (DwWidget *widget, gint32 world_y);gboolean Dw_widget_mouse_event (DwWidget *widget, void* dw_viewport, gint32 x, gint32 y, DWORD flags);void p_Dw_widget_queue_draw (DwWidget *widget);void p_Dw_widget_queue_draw_area (DwWidget *widget, gint32 x, gint32 y, gint32 width, gint32 height);void p_Dw_widget_queue_resize (DwWidget *widget, gint ref, gboolean extremes_changed);void p_Dw_widget_will_clip (DwWidget *widget);void p_Dw_widget_set_bg_color (DwWidget *widget, DwStyleColor *color);DwStyleColor* p_Dw_widget_get_bg_color(DwWidget *widget);/* Wrappers for Dw_style_draw_box */void p_Dw_widget_draw_box (DwWidget *widget, HDC hdc, DwStyle *style, DwRectangle *area, gint32 x, gint32 y, gint32 width, gint32 height, gboolean inverse);void p_Dw_widget_draw_widget_box (DwWidget *widget, HDC hdc, DwRectangle *area, gboolean inverse);void p_Dw_widget_draw_selected (DwWidget *widget, HDC hdc, DwRectangle *area);#ifdef __cplusplus}#endif /* __cplusplus */#endif /* __DW_WIDGET_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -