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_visible?, #hide_frame, #maximize, #maximized?, #resize, #restore_default_conf
Constructor Details
#initialize(_arcadia, _name = nil) ⇒ ArcadiaExtPlus
Returns a new instance of ArcadiaExtPlus.
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
|
# File 'lib/a-commons.rb', line 391
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.
389
390
391
|
# File 'lib/a-commons.rb', line 389
def index
@index
end
|
Class Method Details
.instances(_class) ⇒ Object
449
450
451
|
# File 'lib/a-commons.rb', line 449
def ArcadiaExtPlus.instances(_class)
@@instances[_class]
end
|
Instance Method Details
#activate(_obj = self, _raise_event = true) ⇒ Object
465
466
467
468
469
470
471
472
473
|
# File 'lib/a-commons.rb', line 465
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
475
476
477
|
# File 'lib/a-commons.rb', line 475
def activate_main
activate(@@main_instance[self.class])
end
|
#active? ⇒ Boolean
479
480
481
|
# File 'lib/a-commons.rb', line 479
def active?
@@active_instance[self.class] == self
end
|
#active_instance ⇒ Object
453
454
455
|
# File 'lib/a-commons.rb', line 453
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
#deduplicate ⇒ Object
553
554
555
556
557
558
559
560
561
562
563
|
# File 'lib/a-commons.rb', line 553
def deduplicate
if (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))
if exit_query_event.can_exit
clean_instance
end
end
end
|
#duplicate(_name = new_name) ⇒ Object
#exist_name?(_name) ⇒ Boolean
502
503
504
505
506
507
508
509
|
# File 'lib/a-commons.rb', line 502
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
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
# File 'lib/a-commons.rb', line 423
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?
fr.root.add_state_button(
self.name,
'Duplicate',
proc{duplicate},
PLUS_EX_GIF,
'left')
activate(self, false)
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
487
488
489
|
# File 'lib/a-commons.rb', line 487
def instance_index
instances.index(self)
end
|
#instances ⇒ Object
483
484
485
|
# File 'lib/a-commons.rb', line 483
def instances
@@instances[self.class]
end
|
#main_instance ⇒ Object
457
458
459
|
# File 'lib/a-commons.rb', line 457
def main_instance
@@main_instance[self.class]
end
|
#main_instance? ⇒ Boolean
461
462
463
|
# File 'lib/a-commons.rb', line 461
def main_instance?
@@main_instance[self.class] == self
end
|
#new_name ⇒ Object
491
492
493
494
495
496
497
498
499
500
|
# File 'lib/a-commons.rb', line 491
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
531
532
533
534
535
|
# File 'lib/a-commons.rb', line 531
def on_destroy_instance(_event)
Arcadia.detach_listener(self)
@arcadia.unregister(self)
@frames.each{|f| f.free }
end
|