Class: Wx::ClientDC
- Defined in:
- lib/wx/doc/gen/client_dc.rb,
lib/wx/doc/client_dc.rb
Overview
This class is untracked and should not be derived from nor instances extended!
ClientDC is primarily useful for obtaining information about the window from outside EVT_PAINT() handler.
Typical use of this class is to obtain the extent of some text string in order to allocate enough size for a window, e.g.
# Create the initially empty label with the size big enough to show
# the given string.
text = Wx::ClientDC.draw_on(self) do |dc|
Wx::StaticText.new(
self, Wx::ID_ANY, "",
Wx::Point.new,
dc.get_text_extent("String of max length"),
Wx::ST_NO_AUTORESIZE)
end
While ClientDC may also be used for drawing on the client area of a window from outside an EVT_PAINT() handler in some ports, this does not work on all platforms (neither WXOSX nor WXGTK with GTK 3 Wayland backend support this, so drawing using ClientDC simply doesn't have any effect there) and the only portable way of drawing is via PaintDC. To redraw a small part of the window, use Window#refresh_rect to invalidate just this part and check Window#get_update_region in the paint event handler to redraw this part only.
ClientDC objects should normally be constructed as temporary stack objects, i.e. don’t store a ClientDC object. A ClientDC object is initialized to use the same font and colours as the window it is associated with.
Category: Device Contexts
Direct Known Subclasses
Class Method Summary collapse
-
.draw_on(win) {|dc| ... } ⇒ ::Object
Executes the given block providing a temporary (client) dc as it’s single argument.
Methods inherited from WindowDC
Methods inherited from DC
#blit, #calc_bounding_box, #can_draw_bitmap, #can_get_text_extent, #can_use_transform_matrix, #clear, #copy_attributes, #cross_hair, #destroy_clipping_region, #device_to_logical, #device_to_logical_rel, #device_to_logical_x, #device_to_logical_x_rel, #device_to_logical_y, #device_to_logical_y_rel, #draw_arc, #draw_bitmap, #draw_check_mark, #draw_circle, #draw_ellipse, #draw_elliptic_arc, #draw_icon, #draw_label, #draw_line, #draw_lines, #draw_point, #draw_poly_polygon, #draw_polygon, #draw_rectangle, #draw_rotated_text, #draw_rounded_rectangle, #draw_spline, #draw_text, #end_doc, #end_page, #flood_fill, #from_dip, #get_as_bitmap, #get_background, #get_background_mode, #get_brush, #get_char_height, #get_char_width, #get_clipping_box, #get_content_scale_factor, #get_depth, #get_device_origin, #get_dimensions, #get_dimensions_mm, #get_font, #get_font_metrics, #get_graphics_context, #get_layout_direction, #get_logical_function, #get_logical_origin, #get_logical_scale, #get_map_mode, #get_multi_line_text_extent, #get_multi_line_text_size, #get_pen, #get_pixel, #get_ppi, #get_size, #get_size_mm, #get_text_background, #get_text_extent, #get_text_foreground, #get_text_size, #get_transform_matrix, #get_user_scale, #gradient_fill_concentric, #gradient_fill_linear, #is_ok, #logical_to_device, #logical_to_device_rel, #logical_to_device_x, #logical_to_device_x_rel, #logical_to_device_y, #logical_to_device_y_rel, #max_x, #max_y, #min_x, #min_y, #reset_bounding_box, #reset_transform_matrix, #set_axis_orientation, #set_background, #set_background_mode, #set_brush, #set_clipping_region, #set_device_clipping_region, #set_device_origin, #set_font, #set_graphics_context, #set_layout_direction, #set_logical_function, #set_logical_origin, #set_logical_scale, #set_map_mode, #set_palette, #set_pen, #set_text_background, #set_text_foreground, #set_transform_matrix, #set_user_scale, #start_doc, #start_page, #stretch_blit, #to_dip, #with_background_mode, #with_brush, #with_font, #with_pen, #with_text_background, #with_text_foreground
Methods inherited from Object
#clone, #dup, #initialize, #is_same_as, #un_share
Constructor Details
This class inherits a constructor from Wx::WindowDC
Class Method Details
.draw_on(win) {|dc| ... } ⇒ ::Object
Executes the given block providing a temporary (client) dc as it’s single argument.
17 |
# File 'lib/wx/doc/client_dc.rb', line 17 def self.draw_on(win) end |