Class: Wx::ClientDC

Inherits:
WindowDC show all
Defined in:
lib/wx/doc/gen/client_dc.rb,
lib/wx/doc/client_dc.rb

Overview

Note:

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
Note:

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

PaintDC

Class Method Summary collapse

Methods inherited from WindowDC

#initialize

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.

Parameters:

Yield Parameters:

Returns:

  • (::Object)

    result of the block



17
# File 'lib/wx/doc/client_dc.rb', line 17

def self.draw_on(win) end