diff options
author | rxi <rxi@users.noreply.github.com> | 2020-05-24 12:26:41 +0100 |
---|---|---|
committer | rxi <rxi@users.noreply.github.com> | 2020-05-24 12:26:41 +0100 |
commit | 9e2cf49be6973dbf6df380b43ccb929fb92761b0 (patch) | |
tree | c885039e3afafa7f120b3c9f58f49f7dc778ca77 /plugins/bigclock.lua | |
parent | 7b3f917f65233d41918e4c0dd363ea75e04fb4b8 (diff) | |
download | lite-xl-plugins-9e2cf49be6973dbf6df380b43ccb929fb92761b0.tar.gz lite-xl-plugins-9e2cf49be6973dbf6df380b43ccb929fb92761b0.zip |
Added `bigclock` plugin
Diffstat (limited to 'plugins/bigclock.lua')
-rw-r--r-- | plugins/bigclock.lua | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/plugins/bigclock.lua b/plugins/bigclock.lua new file mode 100644 index 0000000..67d62e2 --- /dev/null +++ b/plugins/bigclock.lua @@ -0,0 +1,71 @@ +local core = require "core" +local style = require "core.style" +local command = require "core.command" +local common = require "core.common" +local config = require "core.config" +local View = require "core.view" + + +config.bigclock_time_format = "%H:%M:%S" +config.bigclock_date_format = "%A, %d %B %Y" +config.bigclock_scale = 1 + + +local ClockView = View:extend() + + +function ClockView:new() + ClockView.super.new(self) + self.time_text = "" + self.date_text = "" +end + + +function ClockView:get_name() + return "Big Clock" +end + + +function ClockView:update_fonts() + local size = math.floor(self.size.x * 0.15) * config.bigclock_scale + if self.font_size ~= size then + self.time_font = renderer.font.load(EXEDIR .. "/data/fonts/font.ttf", size) + self.date_font = renderer.font.load(EXEDIR .. "/data/fonts/font.ttf", size * 0.3) + self.font_size = size + end + return self.font +end + + +function ClockView:update() + local time_text = os.date(config.bigclock_time_format) + local date_text = os.date(config.bigclock_date_format) + if self.time_text ~= time_text or self.date_text ~= date_text then + core.redraw = true + self.time_text = time_text + self.date_text = date_text + end + ClockView.super.update(self) +end + + +function ClockView:draw() + self:update_fonts() + self:draw_background(style.background) + local x, y = self.position.x, self.position.y + local w, h = self.size.x, self.size.y + local _, y = common.draw_text(self.time_font, style.text, self.time_text, "center", x, y, w, h) + local th = self.date_font:get_height() + common.draw_text(self.date_font, style.dim, self.date_text, "center", x, y, w, th) +end + + +command.add(nil, { + ["big-clock:open"] = function() + local node = core.root_view:get_active_node() + node:add_view(ClockView()) + end, +}) + + +return ClockView |