diff options
Diffstat (limited to 'ext/tk/lib/tkextlib/tcllib/cursor.rb')
-rw-r--r-- | ext/tk/lib/tkextlib/tcllib/cursor.rb | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/ext/tk/lib/tkextlib/tcllib/cursor.rb b/ext/tk/lib/tkextlib/tcllib/cursor.rb index 119b8a143f..8813aa05dd 100644 --- a/ext/tk/lib/tkextlib/tcllib/cursor.rb +++ b/ext/tk/lib/tkextlib/tcllib/cursor.rb @@ -9,19 +9,32 @@ require 'tk' require 'tkextlib/tcllib.rb' -# TkPackage.require('cursor', '0.1') -TkPackage.require('cursor') - module Tk module Tcllib module Cursor def self.package_version begin - TkPackage.require('ipentry') + TkPackage.require('cursor') rescue '' end end + + def self.not_available + fail RuntimeError, "'tkextlib/tcllib/cursor' extension is not available on your current environment." + end + + def self.cursor_display(win=None) + Tk::Tcllib::Cursor.not_available + end + + def self.cursor_propagate(win, cursor) + Tk::Tcllib::Cursor.not_available + end + + def self.cursor_restore(win, cursor = None) + Tk::Tcllib::Cursor.not_available + end end end @@ -29,20 +42,48 @@ module Tk # Pops up a dialog with a listbox containing all the cursor names. # Selecting a cursor name will display it in that dialog. # This is simply for viewing any available cursors on the platform . - tk_call_without_enc('::cursor::display', parent) + #tk_call_without_enc('::cursor::display', parent) + Tk::Tcllib::Cursor.cursor_display(parent) end end class TkWindow def cursor_propagate(cursor) # Sets the cursor for self and all its descendants to cursor. - tk_send_without_enc('::cursor::propagate', @path, cursor) + #tk_call_without_enc('::cursor::propagate', @path, cursor) + Tk::Tcllib::Cursor.cursor_propagate(cursor) end def cursor_restore(cursor = None) # Restore the original or previously set cursor for self and all its # descendants. If cursor is specified, that will be used if on any # widget that did not have a preset cursor (set by a previous call # to TkWindow#cursor_propagate). - tk_send_without_enc('::cursor::restore', @path, cursor) + #tk_call_without_enc('::cursor::restore', @path, cursor) + Tk::Tcllib::Cursor.cursor_restore(cursor) + end +end + +# TkPackage.require('cursor', '0.1') +TkPackage.require('cursor') + +module Tk + module Tcllib + class << Cursor + undef not_available + end + + module Cursor + def self.cursor_display(win=None) + tk_call_without_enc('::cursor::display', win) + end + + def self.cursor_propagate(win, cursor) + tk_call_without_enc('::cursor::propagate', win.path, cursor) + end + + def self.cursor_restore(win, cursor = None) + tk_call_without_enc('::cursor::restore', win.path, cursor) + end + end end end |