Sha256: 16158041b24af042e31812ff44e9678992eaa3c8827eec2f487a7253b56d1f43

Contents?: true

Size: 1.86 KB

Versions: 3

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

3 entries across 3 versions & 1 rubygems

Version Path
win-0.1.16 lib/win/gui/dialog.rb
win-0.1.13 lib/win/gui/dialog.rb
win-0.1.11 lib/win/gui/dialog.rb