Class: Tk::BLT::PlotComponent::Axis

Inherits:
TkObject show all
Defined in:
ext/lib/tkextlib/blt/component.rb

Constant Summary collapse

AxisID_TBL =
TkCore::INTERP.create_table

Constants included from TkCore

TkCore::EventFlag, TkCore::INTERP, TkCore::INTERP_MUTEX, TkCore::INTERP_ROOT_CHECK, TkCore::INTERP_THREAD, TkCore::INTERP_THREAD_STATUS, TkCore::RUN_EVENTLOOP_ON_MAIN_THREAD, TkCore::WIDGET_DESTROY_HOOK, TkCore::WITH_ENCODING, TkCore::WITH_RUBY_VM

Constants included from TkComm

TkComm::GET_CONFIGINFO_AS_ARRAY, TkComm::GET_CONFIGINFOwoRES_AS_ARRAY, TkComm::TkExtlibAutoloadModule, TkComm::Tk_CMDTBL, TkComm::Tk_IDs, TkComm::Tk_WINDOWS, TkComm::USE_TCLs_LIST_FUNCTIONS, TkComm::WidgetClassNames

Constants included from TkUtil

TkUtil::None, TkUtil::RELEASE_DATE

Constants included from Tk

AUTO_PATH, Checkbutton, CloneMenu, JAPANIZED_TK, LIBRARY_PATH, Labelframe, MenuButton, OptionMenuButton, PACKAGE_PATH, Panedwindow, RELEASE_DATE, Radiobutton, TCL_LIBRARY_PATH, TCL_MAJOR_VERSION, TCL_MINOR_VERSION, TCL_PACKAGE_PATH, TCL_PATCHLEVEL, TCL_PRECISION, TCL_VERSION, TK_MAJOR_VERSION, TK_MINOR_VERSION, TK_PATCHLEVEL, TK_VERSION, Tkextlib_RELEASE_DATE, TreeCtrl_Widget, X_Scrollable, Y_Scrollable

Constants included from Encoding

Encoding::BINARY, Encoding::BINARY_NAME, Encoding::DEFAULT_EXTERNAL_NAME, Encoding::DEFAULT_INTERNAL_NAME, Encoding::ENCODING_TABLE, Encoding::RubyEncoding, Encoding::TkCommandNames, Encoding::UNKNOWN, Encoding::UTF8_NAME

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TkObject

#destroy, #epath, #event_generate, #method_missing, #path, #tk_send, #tk_send_to_list, #tk_send_to_list_with_enc, #tk_send_to_list_without_enc, #tk_send_to_simplelist, #tk_send_to_simplelist_with_enc, #tk_send_to_simplelist_without_enc, #tk_send_with_enc, #tk_send_without_enc

Methods included from TkCore

#_tk_call_to_list_core, #after, #after_cancel, #after_idle, #appname, #appsend, #appsend_deny, #appsend_displayof, callback, #callback_break, #callback_continue, #callback_return, #chooseColor, #chooseDirectory, #do_one_event, #event_generate, #getMultipleOpenFile, #getMultipleSaveFile, #getOpenFile, #getSaveFile, #get_eventloop_tick, #get_eventloop_weight, #get_no_event_wait, #inactive, #inactive_displayof, #info, #ip_eval, #ip_eval_with_enc, #ip_eval_without_enc, #ip_invoke, #ip_invoke_with_enc, #ip_invoke_without_enc, #is_mainloop?, #load_cmd_on_ip, #mainloop, #mainloop_exist?, #mainloop_thread?, #mainloop_watchdog, #messageBox, #rb_appsend, #rb_appsend_displayof, #reset_inactive, #reset_inactive_displayof, #restart, #scaling, #scaling_displayof, #set_eventloop_tick, #set_eventloop_weight, #set_no_event_wait, #tk_call, #tk_call_to_list, #tk_call_to_list_with_enc, #tk_call_to_list_without_enc, #tk_call_to_simplelist, #tk_call_to_simplelist_with_enc, #tk_call_to_simplelist_without_enc, #tk_call_with_enc, #tk_call_without_enc, #windowingsystem

Methods included from TkComm

_at, _callback_entry?, _callback_entry_class?, _curr_cmd_id, _fromUTF8, _genobj_for_tkwidget, _next_cmd_id, _toUTF8, array2tk_list, #bind, #bind_all, #bind_append, #bind_append_all, #bind_remove, #bind_remove_all, #bindinfo, #bindinfo_all, bool, image_obj, install_cmd, #install_cmd, list, num_or_str, number, procedure, simplelist, string, #subst, tk_tcl2ruby, uninstall_cmd, #uninstall_cmd, window

Methods included from TkUtil

_conv_args, #_conv_args, #_fromUTF8, _get_eval_enc_str, #_get_eval_enc_str, #_get_eval_string, _get_eval_string, _symbolkey2str, #_symbolkey2str, #_toUTF8, bool, #bool, callback, eval_cmd, #hash_kv, hash_kv, install_cmd, num_or_str, #num_or_str, number, #number, string, #string, uninstall_cmd

Methods included from TkEvent

#install_bind, #install_bind_for_event_class

Methods included from TkBindCore

#bind, #bind_append, #bind_remove, #bindinfo

Methods included from TkConfigMethod

#[], #[]=, __IGNORE_UNKNOWN_CONFIGURE_OPTION__, #__check_available_configure_options, __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!, #config_hash_kv, #configure_cmd

Methods included from TkTreatFont

#font_configinfo, #font_configure, #font_copy, #kanjifont_configure, #kanjifont_copy, #latinfont_configure, #latinfont_copy

Methods included from Tk

BinaryString, EncodedString, #Grid, #Pack, #Place, UTF8_String, __set_toplevel_aliases__, add_kinsoku, bell, bell_on_display, const_missing, current_grabs, cursor_display, default_widget_set, default_widget_set=, delete_kinsoku, destroy, errorCode, errorInfo, exit, focus, focus_lastfor, focus_next, focus_prev, focus_to, fromUTF8, grid, grid_forget, has_mainwindow?, load_tcllibrary, load_tclscript, load_tclscript_rsrc, load_tclscript_rsrcid, lower_window, pack, pack_forget, pkgconfig_get, pkgconfig_list, place, place_forget, raise_window, #root, show_kinsoku, sleep, strictMotif, subst_tk_backslash, subst_utf_backslash, tcl_pkgconfig_get, tcl_pkgconfig_list, thread_update, thread_update_idletasks, tk_pkgconfig_get, tk_pkgconfig_list, toUTF8, to_backslash_sequence, ungrid, unload_tcllibrary, unpack, unplace, #update, update, update_idletasks, utf_to_backslash, utf_to_backslash_sequence, wakeup

Methods included from Encoding

#default_encoding=, #encoding=, #encoding_convertfrom, #encoding_convertto, #encoding_dirs, #encoding_dirs=, #encoding_name, #encoding_names, #encoding_obj, #encoding_objs, #encoding_system=, #encoding_system_name, #encoding_system_obj, #force_default_encoding, #force_default_encoding=, #force_default_encoding?, #tk_encoding_names

Constructor Details

#initialize(chart, axis = nil, keys = {}) ⇒ Axis

Returns a new instance of Axis.



446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
# File 'ext/lib/tkextlib/blt/component.rb', line 446

def initialize(chart, axis=nil, keys={})
  # dummy:: not called by 'new' method

  if axis.kind_of?(Hash)
    keys = axis
    axis = nil
  end
  if axis
    @axis = @id = axis.to_s
  else
    OBJ_ID.mutex.synchronize{
      @axis = @id = OBJ_ID.join(TkCore::INTERP._ip_id_).freeze
      OBJ_ID[1].succ!
    }
  end
  @path = @id
  @parent = @chart = chart
  @cpath = @chart.path
  # Axis::AxisID_TBL[@cpath][@axis] = self
  keys = _symbolkey2str(keys)
  unless keys.delete('without_creating')
    # @chart.axis_create(@axis, keys)
    tk_call(@chart, 'axis', 'create', @axis, keys)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class TkObject

Class Method Details

.id2obj(chart, id) ⇒ Object



394
395
396
397
398
399
400
# File 'ext/lib/tkextlib/blt/component.rb', line 394

def self.id2obj(chart, id)
  cpath = chart.path
  AxisID_TBL.mutex.synchronize{
    return id unless AxisID_TBL[cpath]
    AxisID_TBL[cpath][id]? AxisID_TBL[cpath][id]: id
  }
end

.new(chart, axis = nil, keys = {}) ⇒ Object



402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
# File 'ext/lib/tkextlib/blt/component.rb', line 402

def self.new(chart, axis=nil, keys={})
  if axis.kind_of?(Hash)
    keys = axis
    axis = nil
  end
  if keys
    keys = _symbolkey2str(keys)
    not_create = keys.delete('without_creating')
  else
    not_create = false
  end

  obj = nil
  AxisID_TBL.mutex.synchronize{
    chart_path = chart.path
    AxisID_TBL[chart_path] ||= {}
    if axis && AxisID_TBL[chart_path][axis]
      obj = AxisID_TBL[chart_path][axis]
    else
      (obj = self.allocate).instance_eval{
        if axis
          @axis = @id = axis.to_s
        else
          OBJ_ID.mutex.synchronize{
            @axis = @id = OBJ_ID.join(TkCore::INTERP._ip_id_).freeze
            OBJ_ID[1].succ!
          }
        end
        @path = @id
        @parent = @chart = chart
        @cpath = @chart.path
        Axis::AxisID_TBL[@cpath][@axis] = self
        unless not_create
          tk_call(@chart, 'axis', 'create', @axis, keys)
          return obj
        end
      }
    end
  }

  obj.configure(keys) if obj && ! keys.empty?
  obj
end

Instance Method Details

#cget(option) ⇒ Object



480
481
482
# File 'ext/lib/tkextlib/blt/component.rb', line 480

def cget(option)
  @chart.axis_cget(@id, option)
end

#cget_strict(option) ⇒ Object



483
484
485
# File 'ext/lib/tkextlib/blt/component.rb', line 483

def cget_strict(option)
  @chart.axis_cget_strict(@id, option)
end

#command(cmd = nil, &b) ⇒ Object



497
498
499
500
501
502
503
504
505
# File 'ext/lib/tkextlib/blt/component.rb', line 497

def command(cmd=nil, &b)
  if cmd
    configure('command', cmd)
  elsif b
    configure('command', Proc.new(&b))
  else
    cget('command')
  end
end

#configinfo(key = nil) ⇒ Object



490
491
492
# File 'ext/lib/tkextlib/blt/component.rb', line 490

def configinfo(key=nil)
  @chart.axis_configinfo(@id, key)
end

#configure(key, value = None) ⇒ Object



486
487
488
489
# File 'ext/lib/tkextlib/blt/component.rb', line 486

def configure(key, value=None)
  @chart.axis_configure(@id, key, value)
  self
end

#current_configinfo(key = nil) ⇒ Object



493
494
495
# File 'ext/lib/tkextlib/blt/component.rb', line 493

def current_configinfo(key=nil)
  @chart.current_axis_configinfo(@id, key)
end

#deleteObject



507
508
509
510
# File 'ext/lib/tkextlib/blt/component.rb', line 507

def delete
  @chart.axis_delete(@id)
  self
end

#idObject



472
473
474
# File 'ext/lib/tkextlib/blt/component.rb', line 472

def id
  @id
end

#invtransform(val) ⇒ Object



512
513
514
# File 'ext/lib/tkextlib/blt/component.rb', line 512

def invtransform(val)
  @chart.axis_invtransform(@id, val)
end

#limitsObject



516
517
518
# File 'ext/lib/tkextlib/blt/component.rb', line 516

def limits
  @chart.axis_limits(@id)
end

#nameObject



520
521
522
# File 'ext/lib/tkextlib/blt/component.rb', line 520

def name
  @axis
end

#to_evalObject



476
477
478
# File 'ext/lib/tkextlib/blt/component.rb', line 476

def to_eval
  @id
end

#transform(val) ⇒ Object



524
525
526
# File 'ext/lib/tkextlib/blt/component.rb', line 524

def transform(val)
  @chart.axis_transform(@id, val)
end

#use(name = None) ⇒ Object

if @id == xaxis | x2axis | yaxis | y2axis



533
534
535
# File 'ext/lib/tkextlib/blt/component.rb', line 533

def use(name=None) # if @id == xaxis | x2axis | yaxis | y2axis
  @chart.axis_use(@id, name)
end

#use_as(axis) ⇒ Object

axis := xaxis | x2axis | yaxis | y2axis



537
538
539
# File 'ext/lib/tkextlib/blt/component.rb', line 537

def use_as(axis) # axis := xaxis | x2axis | yaxis | y2axis
  @chart.axis_use(axis, @id)
end

#viewObject



528
529
530
531
# File 'ext/lib/tkextlib/blt/component.rb', line 528

def view
  @chart.axis_view(@id)
  self
end