Class: ArcadiaExtPlus
Instance Attribute Summary collapse
Attributes inherited from ArcadiaExt
#arcadia, #name
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from ArcadiaExt
#add_to_conf_property, #array_conf, #conf, #conf_array, #conf_default, #del_from_conf_property, #exec, #float_frame, #frame_def_visible?, #frame_domain, #frame_domain_default, #frame_title, #frame_visible?, #hide_frame, #maximize, #maximized?, #resize, #restore_default_conf
Constructor Details
#initialize(_arcadia, _name = nil) ⇒ ArcadiaExtPlus
Returns a new instance of ArcadiaExtPlus.
397
398
399
400
401
402
403
404
405
406
407
|
# File 'lib/a-commons.rb', line 397
def initialize(_arcadia, _name=nil)
@@instances = {} if !defined?(@@instances)
@@main_instance = {} if !defined?(@@main_instance)
@@active_instance = {} if !defined?(@@active_instance)
@@instances[self.class] = [] if @@instances[self.class] == nil
@@instances[self.class] << self
@@main_instance[self.class] = self if @@main_instance[self.class] == nil
Arcadia.attach_listener(self, ActivateInstanceEvent)
super(_arcadia, _name)
@@active_instance[self.class] = self if @@active_instance[self.class] == nil
end
|
Instance Attribute Details
#index ⇒ Object
Returns the value of attribute index.
395
396
397
|
# File 'lib/a-commons.rb', line 395
def index
@index
end
|
Class Method Details
.instances(_class) ⇒ Object
435
436
437
|
# File 'lib/a-commons.rb', line 435
def ArcadiaExtPlus.instances(_class)
@@instances[_class]
end
|
Instance Method Details
#activate(_obj = self, _raise_event = true) ⇒ Object
451
452
453
454
455
456
457
458
459
|
# File 'lib/a-commons.rb', line 451
def activate(_obj=self, _raise_event=true)
return if @@active_instance[self.class] == _obj
@@active_instance[self.class] = _obj
@@active_instance[self.class].frame.root.shift_on if @@active_instance[self.class].frame != nil
instances.each{|i|
i.frame.root.shift_off if i != @@active_instance[self.class] && i.frame != nil && i.frame.root != @@active_instance[self.class].frame.root
}
ActivateInstanceEvent.new(Arcadia.instance, 'name'=>self.name).go! if _raise_event
end
|
#activate_main ⇒ Object
461
462
463
|
# File 'lib/a-commons.rb', line 461
def activate_main
activate(@@main_instance[self.class])
end
|
#active? ⇒ Boolean
465
466
467
|
# File 'lib/a-commons.rb', line 465
def active?
@@active_instance[self.class] == self
end
|
#active_instance ⇒ Object
439
440
441
|
# File 'lib/a-commons.rb', line 439
def active_instance
@@active_instance[self.class]
end
|
#clean_instance ⇒ Object
def on_before_layout_raising_frame(_event)
if _event.extension_name == @name
activate
end
end
#clone(_name, _dom = nil) ⇒ Object
#deduplicate ⇒ Object
548
549
550
551
552
553
554
555
556
557
558
|
# File 'lib/a-commons.rb', line 548
def deduplicate
can_exit=true
if @confirm_on_exit && (Arcadia.dialog(self, 'type'=>'yes_no',
'msg'=>Arcadia.text('main.d.confirm_delete_ext_instance.msg', [@name]),
'title' => Arcadia.text('main.d.confirm_delete_ext_instance.title', [@name]),
'level' => 'question')=='yes')
exit_query_event = Arcadia.process_event(ExitQueryEvent.new(self, 'can_exit'=>true))
can_exit = exit_query_event.can_exit
end
clean_instance if can_exit
end
|
#duplicate(_name = nil, _dom = nil, _confirm_on_exit = true) ⇒ Object
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
|
# File 'lib/a-commons.rb', line 497
def duplicate(_name=nil, _dom=nil, _confirm_on_exit=true)
_name = new_name if _name.nil?
@confirm_on_exit = _confirm_on_exit
Arcadia.conf_group_copy(@@main_instance[self.class].name, _name)
if !_dom.nil?
doms = Application.conf_array("#{_name}.frames")
doms[0] = _dom
Application.array_conf("#{_name}.frames", doms)
end
instance = clone(_name, _dom)
Arcadia.process_event(InitializeEvent.new(Arcadia.instance), [instance])
main_instance.add_to_conf_property("clones", _name)
instance
end
|
#exist_name?(_name) ⇒ Boolean
488
489
490
491
492
493
494
495
|
# File 'lib/a-commons.rb', line 488
def exist_name?(_name)
exist = false
instances.each{|i|
exist = exist || i.name == _name
break if exist
}
exist
end
|
#frame(_n = 0, create_if_not_exist = true) ⇒ Object
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
|
# File 'lib/a-commons.rb', line 409
def frame(_n=0,create_if_not_exist=true)
fr = super(_n, create_if_not_exist)
if fr != nil && !@frame_initialize && fr.domain != nil && fr.domain != ArcadiaLayout::HIDDEN_DOMAIN
@frame_initialize = true
fr.hinner_frame.bind_append("Enter", proc{activate})
if main_instance?
else
fr.root.add_state_button(
self.name,
'Destroy',
proc{deduplicate},
MINUS_EX_GIF,
'left')
activate(self, false)
end
end
fr
end
|
#instance_index ⇒ Object
473
474
475
|
# File 'lib/a-commons.rb', line 473
def instance_index
instances.index(self)
end
|
#instances ⇒ Object
469
470
471
|
# File 'lib/a-commons.rb', line 469
def instances
@@instances[self.class]
end
|
#main_instance ⇒ Object
443
444
445
|
# File 'lib/a-commons.rb', line 443
def main_instance
@@main_instance[self.class]
end
|
#main_instance? ⇒ Boolean
447
448
449
|
# File 'lib/a-commons.rb', line 447
def main_instance?
@@main_instance[self.class] == self
end
|
#new_name ⇒ Object
477
478
479
480
481
482
483
484
485
486
|
# File 'lib/a-commons.rb', line 477
def new_name
name = main_instance.name
i=0
while exist_name?(name)
i+=1
name = "#{main_instance.name}#{i}"
end
name
end
|
#on_destroy_instance(_event) ⇒ Object
525
526
527
528
529
|
# File 'lib/a-commons.rb', line 525
def on_destroy_instance(_event)
Arcadia.detach_listener(self)
@arcadia.unregister(self)
@frames.each{|f| f.free }
end
|