allow drag scrolling

This commit is contained in:
Ronja 2020-10-11 20:47:38 +02:00
parent 63da634e7d
commit 757ce4a72e
3 changed files with 17 additions and 5 deletions

View file

@ -227,14 +227,10 @@ class UiAdventure{
Control.set_size(item, -1, 12) Control.set_size(item, -1, 12)
Control.set_allow_input(item, true) Control.set_allow_input(item, true)
Control.set_id(item, "Person %(i) : %(Human.get_name(adventurer))") Control.set_id(item, "Person %(i) : %(Human.get_name(adventurer))")
System.print(Strings.get(Control.get_id(item)))
Control.set_events(item) {|event| Control.set_events(item) {|event|
if(UI.event_cancelled(_ent, event.id)) return if(UI.event_cancelled(_ent, event.id)) return
if(!Util.valid_event(event)) return if(!Util.valid_event(event)) return
if(event.type == UIEvent.press){ if(event.type == UIEvent.press){
System.print("entity: %(Strings.get(Control.get_id(item)))")
System.print("focussed: %(UI.get_focused(_ent))")
System.print("event: %(event)")
_ui.ui_mode = Ui.Info _ui.ui_mode = Ui.Info
_ui.info.page.value = UiInfo.human _ui.info.page.value = UiInfo.human
_game.focus.value = adventurer _game.focus.value = adventurer

View file

@ -50,6 +50,23 @@ class UiScrollBox{
UILayout.set_margin(ent, childContainer, 1, 1, 7, 2) //don't include border, fix bottom bug, freedom to side slider UILayout.set_margin(ent, childContainer, 1, 1, 7, 2) //don't include border, fix bottom bug, freedom to side slider
Control.set_clip(childContainer, true) Control.set_clip(childContainer, true)
UILayout.set_contain(ent, childContainer, UILayoutContain.column | UILayoutContain.start) //| UILayout.set_contain(ent, childContainer, UILayoutContain.column | UILayoutContain.start) //|
Control.set_allow_input(childContainer, true)
Control.set_events(childContainer){ |event|
if(event.type == UIEvent.press) {
Control.set_state_data(childContainer, true)
UI.capture(childContainer)
}
if(event.type == UIEvent.release) {
Control.set_state_data(childContainer, false)
UI.uncapture(childContainer)
}
if(event.type == UIEvent.move && Control.get_state_data(childContainer)){
var state = Control.get_state_data(box)
var scrollPos = state["position"]
scrollPos = scrollPos + event.y_rel + 128
set_position(box, scrollPos)
}
}
state["childContainer"] = childContainer state["childContainer"] = childContainer
var alignmentChild = Control.create(ent) var alignmentChild = Control.create(ent)

View file

@ -30,7 +30,6 @@ class Event{
} }
} else if(id is Fn){ } else if(id is Fn){
var removed = false var removed = false
System.print(_listeners.keys)
for(index in _listeners.keys){ for(index in _listeners.keys){
if(_listeners[index] == id){ if(_listeners[index] == id){
//! this might lead to problems because I'm modifying the thing I'm iterating over //! this might lead to problems because I'm modifying the thing I'm iterating over