Sha256: 774e124c3cd4e7d5a1e635cd9393001d0b3794262f9113991c57986592c757c6

Contents?: true

Size: 1.86 KB

Versions: 2

Compression:

Stored size: 1.86 KB

Contents

require 'win/library'
require 'win/gui/window'

module Win
  module Gui
    # Contains constants and Win32API functions related to dialog manipulation
    #
    module Dialog
      include Win::Library
      include Win::Gui::Window

      # The GetDlgItem function retrieves a handle to a control in the specified dialog box.
      #
      # [*Syntax*]  HWND GetDlgItem( HWND hDlg, int nIDDlgItem );
      #
      # hDlg:: [in] Handle to the dialog box that contains the control.
      # nIDDlgItem:: [in] Specifies the identifier of the control to be retrieved.
      # *Returns*:: If the function succeeds, the return value is the window handle of the specified control.
      #             If the function fails, the return value is NULL, indicating an invalid dialog box handle
      #             or a nonexistent control. To get extended error information, call GetLastError.
      # ---
      # *Remarks*:
      # You can use the GetDlgItem function with any parent-child window pair, not just with dialog boxes.
      # As long as the hDlg parameter specifies a parent window and the child window has a unique identifier
      # (as specified by the hMenu parameter in the CreateWindow or CreateWindowEx function that created the 
      # child window), GetDlgItem returns a valid handle to the child window.
      #
      # :call-seq:
      #   control_handle = [get_]dlg_item( dialog_handle, id )
      #
      function :GetDlgItem, [:ulong, :int], :ulong

      # Convenience methods:

      # finds top-level dialog window by title and yields found dialog window to block if given
      def dialog(title, seconds=3)
        d = begin
          win = Window::Window.top_level(title, seconds)
          yield(win) ? win : nil
        rescue TimeoutError
        end
        d.wait_for_close if d
        return d
      end
    end
  end
end


Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
win-0.1.9 lib/win/gui/dialog.rb
win-0.1.2 lib/win/gui/dialog.rb