various tweaks and fixes

develop
Taxi Service 2023-04-04 22:34:47 +02:00
parent 8860ddf982
commit 0c91644c5e
1 changed files with 24 additions and 18 deletions

@ -207,38 +207,38 @@ ItemLine.ATTRS{
} }
function ItemLine:init() function ItemLine:init()
--self.frame.h = 2 self.frame.h = 2
self.visible = function() return #get_cur_filters() >= self.idx end self.visible = function() return #get_cur_filters() >= self.idx end
self:addviews{ self:addviews{
widgets.Label{ widgets.Label{
view_id='item_symbol',
frame={t=0, l=1}, frame={t=0, l=1},
text=string.char(26), text=string.char(26),
--auto_width=true, auto_width=true,
visible=self.is_selected_fn, visible=self.is_selected_fn,
}, },
}
self:addviews{
widgets.Label{ widgets.Label{
view_id='item_info',
frame={t=0, l=2}, frame={t=0, l=2},
text={ text={
{text=self:callback('get_item_line_text')}, {text=self:callback('get_item_line_text')},
--{text='[filter]', pen=self:callback('get_f_pen')},
--{text='[x]', pen=self:callback('get_x_pen')},
}, },
}, },
}
self:addviews{
widgets.Label{ widgets.Label{
frame={t=0, l=25}, frame={t=0, l=28},
text={ text={
--{tile=pens.BUTTON_START_PEN},
--{gap=6, tile=pens.BUTTON_END_PEN},
{text='[filter]', pen=self:callback('get_f_pen')}, {text='[filter]', pen=self:callback('get_f_pen')},
}, },
auto_width=true, auto_width=true,
on_click=function() self.on_filter(self.idx) end, on_click=function() self.on_filter(self.idx) end,
}, },
widgets.Label{ widgets.Label{
frame={t=0, l=33}, frame={t=0, l=36},
text={ text={
--{tile=pens.BUTTON_START_PEN},
--{gap=1, tile=pens.BUTTON_END_PEN},
{text='[x]', pen=self:callback('get_x_pen')}, {text='[x]', pen=self:callback('get_x_pen')},
}, },
auto_width=true, auto_width=true,
@ -266,8 +266,8 @@ function ItemLine:onInput(keys)
return ItemLine.super.onInput(self, keys) return ItemLine.super.onInput(self, keys)
end end
function ItemLine:get_f_pen() function ItemLine:get_f_pen() -- TODO: make this thing work. I've tried many things to no avail. -taxi
return self.is_selected_fn and COLOR_LIGHTCYAN or COLOR_CYAN return self.selected and COLOR_LIGHTCYAN or COLOR_CYAN
end end
function ItemLine:get_x_pen() function ItemLine:get_x_pen()
@ -293,7 +293,7 @@ function ItemLine:get_item_line_text()
self.note = string.char(192)..' Will link later' self.note = string.char(192)..' Will link later'
end end
return ('%d %s%s'):format(quantity, self.desc, quantity == 1 and ' of ' or 's of ') return ('%d %s%s'):format(quantity, self.desc, quantity == 1 and '' or 's')
end end
function ItemLine:reduce_quantity(used_quantity) function ItemLine:reduce_quantity(used_quantity)
@ -318,7 +318,7 @@ end
PlannerOverlay = defclass(PlannerOverlay, overlay.OverlayWidget) PlannerOverlay = defclass(PlannerOverlay, overlay.OverlayWidget)
PlannerOverlay.ATTRS{ PlannerOverlay.ATTRS{
default_pos={x=5,y=8}, default_pos={x=5,y=9},
default_enabled=true, default_enabled=true,
viewscreens='dwarfmode/Building/Placement', viewscreens='dwarfmode/Building/Placement',
frame={w=56, h=22}, frame={w=56, h=22},
@ -432,7 +432,7 @@ function PlannerOverlay:init()
{label='Up', value=df.construction_type.UpStair}, {label='Up', value=df.construction_type.UpStair},
}, },
}, },
widgets.CycleHotkeyLabel { widgets.CycleHotkeyLabel { -- TODO: this thing also needs a slider
view_id='weapons', view_id='weapons',
frame={b=4, l=1, w=22}, frame={b=4, l=1, w=22},
key='CUSTOM_T', key='CUSTOM_T',
@ -464,7 +464,7 @@ function PlannerOverlay:init()
end, end,
}, },
widgets.Label{ widgets.Label{
frame={b=2, l=25}, frame={b=2, l=23},
text_pen=dfhack.pen.parse{fg=COLOR_DARKGREY}, text_pen=dfhack.pen.parse{fg=COLOR_DARKGREY},
text={ text={
'Selected area: ', 'Selected area: ',
@ -519,9 +519,9 @@ function PlannerOverlay:init()
label='Choose items:', label='Choose items:',
label_below=true, label_below=true,
options={ options={
{label='with Filters', value=0}, {label='with filters', value=0},
{ {
label=function() label=function() -- TODO: hide this option if last used mat does not exist yet
local automaterial = itemselection.get_automaterial_selection(uibs.building_type) local automaterial = itemselection.get_automaterial_selection(uibs.building_type)
return ('Last used (%s)'):format(automaterial or 'n/a') return ('Last used (%s)'):format(automaterial or 'n/a')
end, end,
@ -589,6 +589,12 @@ function PlannerOverlay:init()
minimized_panel, minimized_panel,
error_panel, error_panel,
divider_widget, divider_widget,
widgets.Panel{
frame={t=0, l=1, w=37, h=1},
frame_inset=0,
frame_background=gui.CLEAR_PEN,
visible=function() return not self.minimized end,
},
} }
end end