UI: Add some controls to window.

This commit is contained in:
Nodir Temirkhodjaev 2015-02-17 12:11:17 +05:00
parent 7899c7a5dd
commit 8f5b7493a8
3 changed files with 76 additions and 8 deletions

View File

@ -31,6 +31,7 @@ end
-- Initialize IUP
iup.SetGlobal("UTF8MODE", "YES")
iup.SetGlobal("UTF8MODE_FILE", "YES")
iup.SetGlobal("DEFAULTFONTSIZE", 11)
-- Check running instance
@ -65,6 +66,7 @@ do
if iup.LoopStep() == iup.CLOSE then
evq:stop()
end
iup.Flush()
end
local evq = sys.event_queue()

View File

@ -9,3 +9,13 @@ err_conf_size = "Size of configuration is too big"
ui_tray_show = "Show"
ui_tray_quit = "Quit"
ui_tab_options = "Options"
ui_tab_addresses = "IPv4 Addresses"
ui_tab_apps = "Applications"
ui_opt_autostart = "Start with Windows"
ui_opt_filter_disabled = "Filtering disabled"
ui_win_ok = "OK"
ui_win_cancel = "Cancel"

View File

@ -14,6 +14,10 @@ local function window_show()
window:show()
end
local function window_hide()
window:hide()
end
local function window_quit()
window:destroy()
return iup.CLOSE
@ -23,8 +27,8 @@ local function menu_show()
menu:popup(iup.MOUSEPOS, iup.MOUSEPOS)
end
local function on_trayclick(self, b, press)
if press == 0 then
local function on_tray_click(self, b, press)
if press == 1 then
if b == 1 then
window_show()
else
@ -34,11 +38,34 @@ local function on_trayclick(self, b, press)
return iup.DEFAULT
end
local function on_windowclose()
window:hide()
local function on_window_close()
window_hide()
return iup.IGNORE
end
local function on_window_apply()
window_hide()
end
local function on_window_cancel()
window_hide()
end
local function create_toggle(title, action_cb)
return iup.toggle{
title = title, padding = 8,
action = action_cb
}
end
local function create_button(title, action_cb)
return iup.button{
title = title, padding = 8,
action = action_cb
}
end
-- Menu
local function menu_init()
@ -62,12 +89,41 @@ end
function ui_window.init(window_title)
-- Initialize Window
local btn_apply = create_button(i18n.tr("ui_win_ok"), on_window_apply)
local btn_cancel = create_button(i18n.tr("ui_win_cancel"), on_window_cancel)
window = iup.dialog{
iup.label{title = "Test Main Window"};
title = window_title, tray = "YES", hidetaskbar = "YES",
iup.vbox{
iup.tabs{
-- Options
iup.vbox{
create_toggle(i18n.tr("ui_opt_autostart"), on_opt_autostart),
create_toggle(i18n.tr("ui_opt_filter_disabled"), on_opt_filter_disabled);
tabtitle = i18n.tr("ui_tab_options")
},
-- IPv4 Addresses
iup.hbox{
iup.multiline{expand = "YES"},
iup.multiline{expand = "YES"};
tabtitle = i18n.tr("ui_tab_addresses")
},
-- Applications
iup.vbox{
tabtitle = i18n.tr("ui_tab_apps")
}
},
iup.hbox{
iup.fill{}, btn_apply, btn_cancel;
gap = 10
};
gap = 2, margin = "2x2"
};
title = window_title, traytip = window_title,
shrink = "YES", hidetaskbar = "YES", tray = "YES",
icon = "images/shield.ico", trayimage = "images/shield.ico",
traytip = window_title,
trayclick_cb = on_trayclick, close_cb = on_windowclose,
size = "HALFxHALF", minsize = "750x750", saveunder = "NO",
defaultenter = btn_apply, defaultesc = btn_cancel,
trayclick_cb = on_tray_click, close_cb = on_window_close,
copydata_cb = window_show
}