mirror of
https://github.com/mt-mods/mail.git
synced 2025-07-04 21:50:28 -04:00
Add colors utilities (#121)
* Add colors utilities Local function get_base_color(), conversions hex <=> rgb, rgb color mixer, and global function get_color() * Round numbers to avoid eventual float in string.format * Simplify inbox/outbox mixing of color Use a single if statement for each property and concatenate to displayed_color then execute mail.get_color(displayed_color) instead of making many combined if statements * Convert 3-chars hex colors to 6-chars hex colors Could break the code, the hex convert to rgb always run on 6-chars * Rework color utility using tables Instead of one-letter symbols, it now supports tables of identifiers or single strings
This commit is contained in:
parent
802f9f727b
commit
3bad371353
15 changed files with 86 additions and 61 deletions
|
@ -21,8 +21,8 @@ function mail.show_about(name)
|
|||
|
||||
tablecolumns[color;text;text]
|
||||
table[5,0.75;4.9,5.5;contributors;]] ..
|
||||
mail.colors.header .. [[,]] .. S("Contributors") .. [[,,]] ..
|
||||
mail.colors.important .. [[,Cheapie,Initial idea/project,]] ..
|
||||
mail.get_color("header") .. [[,]] .. S("Contributors") .. [[,,]] ..
|
||||
mail.get_color("important") .. [[,Cheapie,Initial idea/project,]] ..
|
||||
[[,Rubenwardy,Lua/UI improvements,]] ..
|
||||
[[,BuckarooBanzay,Clean-ups\, Refactoring,]] ..
|
||||
[[,Athozus,Boxes\, Maillists\, UI\, Settings,]] ..
|
||||
|
|
|
@ -9,7 +9,7 @@ local contacts_formspec = "size[8,9;]" .. mail.theme .. [[
|
|||
button[6,1.60;2,0.5;delete;]] .. S("Delete") .. [[]
|
||||
button[6,8.25;2,0.5;back;]] .. S("Back") .. [[]
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0;5.75,9;contacts;]] .. mail.colors.header .. "," .. S("Name") .. "," .. S("Note")
|
||||
table[0,0;5.75,9;contacts;]] .. mail.get_color("header") .. "," .. S("Name") .. "," .. S("Note")
|
||||
|
||||
|
||||
function mail.show_contacts(name)
|
||||
|
|
|
@ -21,7 +21,7 @@ function mail.show_drafts(name)
|
|||
button_exit[6,9.5;2.5,0.5;quit;]] .. S("Close") .. [[]
|
||||
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0.7;5.75,9.35;drafts;]] .. mail.colors.header .. "," .. S("To") .. "," .. S("Subject")
|
||||
table[0,0.7;5.75,9.35;drafts;]] .. mail.get_color("header") .. "," .. S("To") .. "," .. S("Subject")
|
||||
|
||||
local formspec = { drafts_formspec }
|
||||
local entry = mail.get_storage_entry(name)
|
||||
|
|
38
ui/inbox.lua
38
ui/inbox.lua
|
@ -67,7 +67,7 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter)
|
|||
button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[]
|
||||
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0.7;5.75,7.45;inbox;]] .. mail.colors.header .. "," .. S("From") .. "," .. S("Subject")
|
||||
table[0,0.7;5.75,7.45;inbox;]] .. mail.get_color("header") .. "," .. S("From") .. "," .. S("Subject")
|
||||
local formspec = { inbox_formspec }
|
||||
|
||||
mail.message_drafts[name] = nil
|
||||
|
@ -78,6 +78,7 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter)
|
|||
if #messages > 0 then
|
||||
for _, message in ipairs(messages) do
|
||||
local selected_id = 0
|
||||
local displayed_color = {}
|
||||
-- check if message is in selection list and return its id
|
||||
if mail.selected_idxs.inbox[name] and #mail.selected_idxs.inbox[name] > 0 then
|
||||
for i, selected_msg in ipairs(mail.selected_idxs.inbox[name]) do
|
||||
|
@ -88,34 +89,15 @@ function mail.show_inbox(name, sortfieldindex, sortdirection, filter)
|
|||
end
|
||||
end
|
||||
if selected_id > 0 then
|
||||
if not message.read and unread_color_enable then
|
||||
if not mail.player_in_list(name, message.to) and cc_color_enable then
|
||||
formspec[#formspec + 1] = "," .. mail.colors.imp_add_sel
|
||||
else
|
||||
formspec[#formspec + 1] = "," .. mail.colors.imp_sel
|
||||
end
|
||||
else
|
||||
if not mail.player_in_list(name, message.to) and cc_color_enable then
|
||||
formspec[#formspec + 1] = "," .. mail.colors.add_sel
|
||||
else
|
||||
formspec[#formspec + 1] = "," .. mail.colors.selected
|
||||
end
|
||||
end
|
||||
else
|
||||
if not message.read and unread_color_enable then
|
||||
if not mail.player_in_list(name, message.to) and cc_color_enable then
|
||||
formspec[#formspec + 1] = "," .. mail.colors.imp_add
|
||||
else
|
||||
formspec[#formspec + 1] = "," .. mail.colors.important
|
||||
end
|
||||
else
|
||||
if not mail.player_in_list(name, message.to) and cc_color_enable then
|
||||
formspec[#formspec + 1] = "," .. mail.colors.additional
|
||||
else
|
||||
formspec[#formspec + 1] = ","
|
||||
end
|
||||
end
|
||||
table.insert(displayed_color, "selected")
|
||||
end
|
||||
if not message.read and unread_color_enable then
|
||||
table.insert(displayed_color, "important")
|
||||
end
|
||||
if not mail.player_in_list(name, message.to) and cc_color_enable then
|
||||
table.insert(displayed_color, "additional")
|
||||
end
|
||||
formspec[#formspec + 1] = "," .. mail.get_color(displayed_color)
|
||||
formspec[#formspec + 1] = ","
|
||||
formspec[#formspec + 1] = minetest.formspec_escape(message.from)
|
||||
formspec[#formspec + 1] = ","
|
||||
|
|
|
@ -9,7 +9,7 @@ local maillists_formspec = "size[8,9;]" .. mail.theme .. [[
|
|||
button[6,1.60;2,0.5;delete;]] .. S("Delete") .. [[]
|
||||
button[6,8.25;2,0.5;back;]] .. S("Back") .. [[]
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0;5.75,9;maillists;]] .. mail.colors.header .. "," .. S("Name") .. "," .. S("Note")
|
||||
table[0,0;5.75,9;maillists;]] .. mail.get_color("header") .. "," .. S("Name") .. "," .. S("Note")
|
||||
|
||||
function mail.show_maillists(name)
|
||||
local formspec = { maillists_formspec }
|
||||
|
|
|
@ -15,7 +15,7 @@ function mail.show_message(name, id)
|
|||
local formspec = [[
|
||||
size[8,9]
|
||||
|
||||
box[0,0;7,1.9;]] .. mail.colors.highlighted .. [[]
|
||||
box[0,0;7,1.9;]] .. mail.get_color("highlighted") .. [[]
|
||||
|
||||
button[7.25,0.15;0.75,0.5;back;X]
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ function mail.show_outbox(name, sortfieldindex, sortdirection, filter)
|
|||
button[3.5,9.5;2.5,0.5;selectall;]] .. S("(Un)select all") .. [[]
|
||||
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0.7;5.75,7.45;outbox;]] .. mail.colors.header .. "," .. S("To") .. "," .. S("Subject")
|
||||
table[0,0.7;5.75,7.45;outbox;]] .. mail.get_color("header") .. "," .. S("To") .. "," .. S("Subject")
|
||||
local formspec = { outbox_formspec }
|
||||
|
||||
mail.message_drafts[name] = nil
|
||||
|
@ -73,6 +73,7 @@ function mail.show_outbox(name, sortfieldindex, sortdirection, filter)
|
|||
if #messages > 0 then
|
||||
for _, message in ipairs(messages) do
|
||||
local selected_id = 0
|
||||
local displayed_color = {}
|
||||
-- check if message is in selection list and return its id
|
||||
if mail.selected_idxs.outbox[name] and #mail.selected_idxs.outbox[name] > 0 then
|
||||
for i, selected_msg in ipairs(mail.selected_idxs.outbox[name]) do
|
||||
|
@ -83,10 +84,9 @@ function mail.show_outbox(name, sortfieldindex, sortdirection, filter)
|
|||
end
|
||||
end
|
||||
if selected_id > 0 then
|
||||
formspec[#formspec + 1] = "," .. mail.colors.selected
|
||||
else
|
||||
formspec[#formspec + 1] = ","
|
||||
table.insert(displayed_color, "selected")
|
||||
end
|
||||
formspec[#formspec + 1] = "," .. mail.get_color(displayed_color)
|
||||
formspec[#formspec + 1] = ","
|
||||
if string.len(message.to) > 20 then
|
||||
formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.to, 1, 17))
|
||||
|
|
|
@ -9,7 +9,7 @@ function mail.show_receivers(name, id)
|
|||
local formspec = [[
|
||||
size[8,6]
|
||||
|
||||
box[0,0;7,1.1;]] .. mail.colors.highlighted .. [[]
|
||||
box[0,0;7,1.1;]] .. mail.get_color("highlighted") .. [[]
|
||||
|
||||
button[7.25,0.15;0.75,0.5;back;X]
|
||||
|
||||
|
@ -25,10 +25,10 @@ function mail.show_receivers(name, id)
|
|||
|
||||
local from = minetest.formspec_escape(message.from) or ""
|
||||
local to = mail.parse_player_list(message.to or "")
|
||||
local to_str = mail.colors.header .. "," .. S("To") .. ",,"
|
||||
local to_str = mail.get_color("header") .. "," .. S("To") .. ",,"
|
||||
to_str = to_str .. table.concat(to, ",,")
|
||||
local cc = mail.parse_player_list(message.cc or "")
|
||||
local cc_str = mail.colors.header .. "," .. S("CC") .. ",,"
|
||||
local cc_str = mail.get_color("header") .. "," .. S("CC") .. ",,"
|
||||
cc_str = cc_str .. table.concat(cc, ",,")
|
||||
local date = type(message.time) == "number"
|
||||
and minetest.formspec_escape(os.date(mail.get_setting(name, "date_format"), message.time)) or ""
|
||||
|
|
|
@ -5,15 +5,15 @@ local FORMNAME = "mail:selectcontact"
|
|||
|
||||
local select_contact_formspec = "size[8,9;]" .. mail.theme .. [[
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0;3.5,9;contacts;]] .. mail.colors.header .. "," .. S("Name") .. "," .. S("Note") .. [[%s]
|
||||
table[0,0;3.5,9;contacts;]] .. mail.get_color("header") .. "," .. S("Name") .. "," .. S("Note") .. [[%s]
|
||||
button[3.55,2.00;1.75,0.5;toadd;→ ]] .. S("Add") .. [[]
|
||||
button[3.55,2.75;1.75,0.5;toremove;← ]] .. S("Remove") .. [[]
|
||||
button[3.55,6.00;1.75,0.5;ccadd;→ ]] .. S("Add") .. [[]
|
||||
button[3.55,6.75;1.75,0.5;ccremove;← ]] .. S("Remove") .. [[]
|
||||
tablecolumns[color;text;text]
|
||||
table[5.15,0.0;2.75,4.5;to;]] .. mail.colors.header .. "," .. S("To") .. ":," .. S("Note") .. [[%s]
|
||||
table[5.15,0.0;2.75,4.5;to;]] .. mail.get_color("header") .. "," .. S("To") .. ":," .. S("Note") .. [[%s]
|
||||
tablecolumns[color;text;text]
|
||||
table[5.15,4.6;2.75,4.5;cc;]] .. mail.colors.header .. "," .. S("CC") .. ":," .. S("Note") .. [[%s]
|
||||
table[5.15,4.6;2.75,4.5;cc;]] .. mail.get_color("header") .. "," .. S("CC") .. ":," .. S("Note") .. [[%s]
|
||||
button[3.55,8.25;1.75,0.5;back;]] .. S("Back") .. [[]
|
||||
]]
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ function mail.show_settings(name)
|
|||
tablecolumns[text]
|
||||
table[0,0.775;3,4.5;groups;]] .. groups_str .. [[;]] .. group_index .. [[]
|
||||
|
||||
box[3.5,0.8;3,0.45;]] .. mail.colors.highlighted .. [[]
|
||||
box[3.5,0.8;3,0.45;]] .. mail.get_color("highlighted") .. [[]
|
||||
label[3.7,0.8;]] .. mail.settings_groups[group_index].label .. [[]
|
||||
|
||||
button[0,5.65;2.5,0.5;reset;]] .. S("Reset") .. [[]
|
||||
|
|
|
@ -16,7 +16,7 @@ local trash_formspec = "size[8.5,10;]" .. mail.theme .. [[
|
|||
button_exit[6,9.5;2.5,0.5;quit;]] .. S("Close") .. [[]
|
||||
|
||||
tablecolumns[color;text;text]
|
||||
table[0,0.7;5.75,9.35;trash;]] .. mail.colors.header .. "," .. S("From/To") .. "," .. S("Subject")
|
||||
table[0,0.7;5.75,9.35;trash;]] .. mail.get_color("header") .. "," .. S("From/To") .. "," .. S("Subject")
|
||||
|
||||
|
||||
function mail.show_trash(name)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue