2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
koreader/frontend/ui/widget/logindialog.lua
chrox 5c1d5c3314 add Evernote plugin to export highlights and notes
The "My Clipping" file that storing highlights and notes for Kindle
native readers could also be parsed and exported. The parser is
implemented in `evernote.koplugin/clip.lua`.

Parsed highlights and notes in one book will be packed and rendered
into html node with a slt2 template `note.tpl` that complies with
evernote markup language(ENML).

Finally the evernote client will create or update note entries and
push them to Evernote cloud.
2014-04-23 22:30:36 +08:00

114 lines
3.1 KiB
Lua

local FrameContainer = require("ui/widget/container/framecontainer")
local CenterContainer = require("ui/widget/container/centercontainer")
local VerticalGroup = require("ui/widget/verticalgroup")
local InputDialog = require("ui/widget/inputdialog")
local InputText = require("ui/widget/inputtext")
local UIManager = require("ui/uimanager")
local Geom = require("ui/geometry")
local Screen = require("ui/screen")
local DEBUG = require("dbg")
local _ = require("gettext")
local LoginDialog = InputDialog:extend{
username = "",
username_hint = "username",
password = "",
password_hint = "password",
}
function LoginDialog:init()
-- init title and buttons in base class
InputDialog.init(self)
self.input_username = InputText:new{
text = self.username,
hint = self.username_hint,
face = self.input_face,
width = self.width * 0.9,
focused = true,
scroll = false,
parent = self,
}
self.input_password = InputText:new{
text = self.password,
hint = self.password_hint,
face = self.input_face,
width = self.width * 0.9,
text_type = "password",
focused = false,
scroll = false,
parent = self,
}
self.dialog_frame = FrameContainer:new{
radius = 8,
bordersize = 3,
padding = 0,
margin = 0,
background = 0,
VerticalGroup:new{
align = "left",
self.title,
self.title_bar,
-- username input
CenterContainer:new{
dimen = Geom:new{
w = self.title_bar:getSize().w,
h = self.input_username:getSize().h,
},
self.input_username,
},
-- password input
CenterContainer:new{
dimen = Geom:new{
w = self.title_bar:getSize().w,
h = self.input_password:getSize().h,
},
self.input_password,
},
-- buttons
CenterContainer:new{
dimen = Geom:new{
w = self.title_bar:getSize().w,
h = self.button_table:getSize().h,
},
self.button_table,
}
}
}
self.input = self.input_username
self[1] = CenterContainer:new{
dimen = Geom:new{
w = Screen:getWidth(),
h = Screen:getHeight() - self.input:getKeyboardDimen().h,
},
self.dialog_frame,
}
UIManager.repaint_all = true
UIManager.full_refresh = true
end
function LoginDialog:getCredential()
local username = self.input_username:getText()
local password = self.input_password:getText()
return username, password
end
function LoginDialog:onSwitchFocus(inputbox)
-- unfocus current inputbox
self.input:unfocus()
self.input:onCloseKeyboard()
-- focus new inputbox
self.input = inputbox
self.input:focus()
self.input:onShowKeyboard()
UIManager:show(self)
end
return LoginDialog