Forum: wxRuby Device context (get_dc) Question from printing.rb in wxRuby samples

755ce658078632d051cc60c811613066?d=identicon&s=25 Ann Maybury (Guest)
on 2011-05-09 02:38
(Received via mailing list)
I am using Windows XP SP 3 but want to stay general.

Below is a method within printing.rb.   I have added comments marked by
#--.
My question is about get_dc.   The device context is obviously created
and
the code works as presented.
It also  works as documented below.   Why does just get_dc satisfy the
linkage?
When does one use the Wx:: or the Wx::PrintOut format?  How does one
decide
to use just the short form?

Where could I have found this answer?

<Code>
def on_print_page(page)
    dc = get_dc       #-- don;'t understand where get_dc comes from
                                   #--Wx::get_dc works
                                   #-- Wx::PrintOut.get_dc also works
                                   #--PrintOut.get_dc also works
                                   #-- looks like just get_dc is ok, why
and
when
                                   #-- the variable dc is probably a
class
or module but
                                   #-- where do I find its definition?


    if dc
        if page == 1
            draw_page_one(dc)   ##-- dc = device context passed in
        elsif (page == 2)
            draw_page_two(dc)  ##-- dc = device context passed in
        end
        dc.set_device_origin(0, 0)
        dc.set_user_scale(1.0, 1.0)

        buf = "PAGE #{page}"
        dc.draw_text(buf, 10, 10)

        return true
    else
        return false
    end
  end   #--end of on_print_page
8e9ab605d7a3f93c134cc84c96a096fd?d=identicon&s=25 Phillip & Kerrie Shelton (Guest)
on 2011-05-11 01:41
(Received via mailing list)
It has a lot to do with scope.

On 09/05/2011 10:38 AM, "Ann Maybury" <ann.maybury@gmail.com> wrote:

I am using Windows XP SP 3 but want to stay general.

Below is a method within printing.rb.   I have added comments marked by
#--.
My question is about get_dc.   The device context is obviously created
and
the code works as presented.
It also  works as documented below.   Why does just get_dc satisfy the
linkage?
When does one use the Wx:: or the Wx::PrintOut format?  How does one
decide
to use just the short form?

Where could I have found this answer?

<Code>
def on_print_page(page)
    dc = get_dc       #-- don;'t understand where get_dc comes from
                                   #--Wx::get_dc works
                                   #-- Wx::PrintOut.get_dc also works
                                   #--PrintOut.get_dc also works
                                   #-- looks like just get_dc is ok, why
and
when
                                   #-- the variable dc is probably a
class
or module but
                                   #-- where do I find its definition?


    if dc
        if page == 1
            draw_page_one(dc)   ##-- dc = device context passed in
        elsif (page == 2)
            draw_page_two(dc)  ##-- dc = device context passed in
        end
        dc.set_device_origin(0, 0)
        dc.set_user_scale(1.0, 1.0)

        buf = "PAGE #{page}"
        dc.draw_text(buf, 10, 10)

        return true
    else
        return false
    end
  end   #--end of on_print_page



--
Ann Maybury
ann.maybury@gmail.com
06f6780c99d4a8dd71f2b474082ea9ce?d=identicon&s=25 Alex Fenton (Guest)
on 2011-05-15 23:15
(Received via mailing list)
On 09/05/11 00:59, Ann Maybury wrote:
> Below is a method within printing.rb.   I have added comments marked
> by #--.
> My question is about get_dc.   The device context is obviously created
> and the code works as presented.
> It also  works as documented below.   Why does just get_dc satisfy the
> linkage?
> When does one use the Wx:: or the Wx::PrintOut format?  How does one
> decide to use just the short form?

get_dc is an instance method of Wx::Printout, and in the sample, it's
called from within a class that inherits from that.


> Where could I have found this answer?

http://wxruby.rubyforge.org/doc/printout.html#Printout_getdc

>                                    #-- where do I find its definition?
I don't think PrintOut.get_dc or Wx::get_dc will work? There are no such
class/module methods in either Wx::Printout or the global Wx:: module.

alex
This topic is locked and can not be replied to.