AdUnit.gd 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. tool
  2. extends GridContainer
  3. signal AdUnitChanged(name_value, id_value, old_name_value)
  4. signal AdUnitRemoved(name_value)
  5. onready var Name := $Name
  6. onready var Id := $Id
  7. onready var ChildrenParent := get_parent().get_children()
  8. onready var AddAdUnitButtonParent := get_parent().get_parent().get_node("AddAdUnitButton")
  9. var old_name_value := ""
  10. var is_editing := true setget set_is_editing
  11. func _ready():
  12. if get_index() == 0:
  13. $GridContainer/RemoveButton.disabled = true
  14. func change_state(editing : bool) -> void:
  15. if editing:
  16. editing_state()
  17. else:
  18. not_editing_state()
  19. func editing_state() -> void:
  20. $GridContainer/ConfirmButton.visible = true
  21. $GridContainer/EditButton.visible = false
  22. Name.editable = true
  23. Id.editable = true
  24. for ad_unit in ChildrenParent:
  25. if ad_unit.get_index() != get_index():
  26. if ad_unit.get_index() != 0: ad_unit.get_node("GridContainer/RemoveButton").disabled = true
  27. ad_unit.get_node("GridContainer/EditButton").disabled = true
  28. AddAdUnitButtonParent.disabled = true
  29. func not_editing_state():
  30. $GridContainer/ConfirmButton.visible = false
  31. $GridContainer/EditButton.visible = true
  32. Name.editable = false
  33. Id.editable = false
  34. for ad_unit in ChildrenParent:
  35. if ad_unit.get_index() != 0: ad_unit.get_node("GridContainer/RemoveButton").disabled = false
  36. ad_unit.get_node("GridContainer/EditButton").disabled = false
  37. AddAdUnitButtonParent.disabled = false
  38. func set_is_editing(value : bool):
  39. change_state(value)
  40. func _on_RemoveButton_pressed():
  41. if (get_parent().get_child_count() > 1):
  42. self.is_editing = false
  43. emit_signal("AdUnitRemoved", Name.text)
  44. queue_free()
  45. func _on_ConfirmButton_pressed():
  46. if Name.text != "" && Id.text != "":
  47. for ad_unit in ChildrenParent:
  48. if ad_unit.get_index() != get_index():
  49. if ad_unit.Name.text == Name.text:
  50. $Alerts/UniqueNameAcceptDialog.popup_centered()
  51. return
  52. else:
  53. $Alerts/NameIdEmptyAcceptDialog.popup_centered()
  54. return
  55. emit_signal("AdUnitChanged", Name.text, Id.text, old_name_value)
  56. self.is_editing = false
  57. func _on_AdUnit_text_entered(new_text):
  58. $GridContainer/ConfirmButton.emit_signal("pressed")
  59. func _on_EditButton_pressed():
  60. old_name_value = Name.text
  61. self.is_editing = true