diff --git a/src/core/BaseDialog.coffee b/src/core/BaseDialog.coffee
index ace2a8f..be54d4b 100644
--- a/src/core/BaseDialog.coffee
+++ b/src/core/BaseDialog.coffee
@@ -240,7 +240,7 @@ class AboutDialog extends BaseDialog
super "AboutDialog"
init: () ->
- @render "os:///resources/schemes/about.html"
+ @render "os://resources/schemes/about.html"
main: () ->
mt = @meta()
@@ -260,7 +260,7 @@ class FileDiaLog extends BaseDialog
super "FileDiaLog"
init: () ->
- @render "os:///resources/schemes/filedialog.html"
+ @render "os://resources/schemes/filedialog.html"
main: () ->
fileview = @find "fileview"
diff --git a/src/core/api.coffee b/src/core/api.coffee
index faa7962..33b6673 100644
--- a/src/core/api.coffee
+++ b/src/core/api.coffee
@@ -242,7 +242,7 @@ self.OS.API =
, (e, s) ->
_courrier.oserror __("Cannot load 3rd library at: {0}", l), e, r
else
- path = "os:///scripts/"
+ path = "os://scripts/"
js = "#{path}#{l}.js"
js.asFileHandler().onready (d) ->
_API.shared[l] = true
diff --git a/src/core/gui.coffee b/src/core/gui.coffee
index fa121b4..200e8bb 100644
--- a/src/core/gui.coffee
+++ b/src/core/gui.coffee
@@ -118,7 +118,7 @@ self.OS.GUI =
_GUI.launch app, args
loadApp: (app, ok, err) ->
- path = "os:///packages/#{app}"
+ path = "os://packages/#{app}"
path = _OS.setting.system.packages[app].path if _OS.setting.system.packages[app].path
js = path + "/main.js"
@@ -210,7 +210,15 @@ self.OS.GUI =
c = arr[1].toUpperCase()
return unless _GUI.shortcut[fnk]
_GUI.shortcut[fnk][c] = f
-
+
+ wallpaper: (obj) ->
+ if obj
+ _OS.setting.appearance.wp = obj
+ wp = _OS.setting.appearance.wp
+ $("body").css("background-image", "url(#{_API.handler.get}/#{wp.url})" )
+ .css("background-size", wp.size)
+ .css("ackground-repeat", wp.repeat)
+
initDM: ->
($ document).on 'webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange', ()->
_GUI.fullscreen = not _GUI.fullscreen
@@ -388,6 +396,7 @@ self.OS.GUI =
#console.log _OS.setting
# load theme
_GUI.loadTheme _OS.setting.appearance.theme
+ _GUI.wallpaper()
_courrier.observable.one "syspanelloaded", () ->
# TODO load packages list then build system menu
_courrier.observable.on "systemlocalechange", (name) ->
diff --git a/src/core/settings.coffee b/src/core/settings.coffee
index 7f31306..95eecc2 100644
--- a/src/core/settings.coffee
+++ b/src/core/settings.coffee
@@ -2,18 +2,23 @@
_OS.setting.desktop = conf.desktop if conf.desktop
_OS.setting.applications = conf.applications if conf.applications
_OS.setting.appearance = conf.appearance if conf.appearance
+ _OS.setting.appearance.wp = {
+ url: "os://resources/themes/system/wp/wp2.png",
+ size: "cover",
+ repeat: "repeat"
+ } unless _OS.setting.appearance.wp
_OS.setting.user = conf.user
_OS.setting.VFS = conf.VFS if conf.VFS
- _OS.setting.desktop.path = "home:///.desktop" unless _OS.setting.desktop.path
+ _OS.setting.desktop.path = "home://.desktop" unless _OS.setting.desktop.path
_OS.setting.desktop.menu = {} unless _OS.setting.desktop.menu
_OS.setting.VFS.mountpoints = [
#TODO: multi app try to write to this object, it neet to be cloned
- { text: __("Applications"), path: 'app:///', iconclass: "fa fa-adn", type: "app" },
- { text: __("Home"), path: 'home:///', iconclass: "fa fa-home", type: "fs" },
+ { text: __("Applications"), path: 'app://', iconclass: "fa fa-adn", type: "app" },
+ { text: __("Home"), path: 'home://', iconclass: "fa fa-home", type: "fs" },
{ text: __("Desktop"), path: _OS.setting.desktop.path , iconclass: "fa fa-desktop", type: "fs" },
- { text: __("OS"), path: 'os:///', iconclass: "fa fa-inbox", type: "fs" },
- { text: __("Google Drive"), path: 'gdv:///', iconclass: "fa fa-inbox", type: "fs" },
- { text: __("Shared"), path: 'shared:///' , iconclass: "fa fa-share-square", type: "fs" }
+ { text: __("OS"), path: 'os://', iconclass: "fa fa-inbox", type: "fs" },
+ { text: __("Google Drive"), path: 'gdv://', iconclass: "fa fa-inbox", type: "fs" },
+ { text: __("Shared"), path: 'shared://' , iconclass: "fa fa-share-square", type: "fs" }
] if not _OS.setting.VFS.mountpoints
_OS.setting.system = conf.system if conf.system
@@ -28,8 +33,8 @@
} if not _OS.setting.system.startup
_OS.setting.system.pkgpaths = {
- user: "home:///.packages",
- system: "os:///packages"
+ user: "home://.packages",
+ system: "os://packages"
} unless _OS.setting.system.pkgpaths
_OS.setting.system.locale = "en_GB" unless _OS.setting.system.locale
_OS.setting.system.menu = {} unless _OS.setting.system.menu
diff --git a/src/core/tags/afx-calendar-view.tag b/src/core/tags/afx-calendar-view.tag
index 8de9f85..dd41f5a 100644
--- a/src/core/tags/afx-calendar-view.tag
+++ b/src/core/tags/afx-calendar-view.tag
@@ -20,7 +20,7 @@
return self[k]
}
- this.on("mount", function (e) {
+ this.on("mount", function (e) {
self.refs.grid.root.observable = self.root.observable
calendar(null)
self.root.observable.on("gridcellselect", function(d){
diff --git a/src/core/tags/afx-hbox.tag b/src/core/tags/afx-hbox.tag
index a5261a6..93e9ba4 100644
--- a/src/core/tags/afx-hbox.tag
+++ b/src/core/tags/afx-hbox.tag
@@ -6,6 +6,7 @@
var self = this
this.rid = $(self.root).attr("data-id") || Math.floor(Math.random() * 100000) + 1
this.on('mount', function(){
+ self.root.observable = (self.parent && self.parent.root && self.parent.root.observable) || opts.observable || riot.observable()
$(self.refs.container)
.css("display","flex")
.css("flex-direction","row")
@@ -29,6 +30,16 @@
var csize, ocwidth = 0, avaiheight;
avaiheight = $(self.root).height()
avaiWidth = $(self.root).width()
+ /*if(avaiheight == 0)
+ {
+ avaiheight = $(self.parent.root).height()
+ $(self.root).css("height", avaiheight+"px")
+ }
+ if(avaiWidth == 0)
+ {
+ avaiWidth = $(self.parent.root).width()
+ $(self.root).css("height", avaiWidth+"px")
+ }*/
$(self.refs.container).css("height",avaiheight + "px")
$(self.refs.container)
.children()
diff --git a/src/core/tags/afx-list-view.tag b/src/core/tags/afx-list-view.tag
index 084aba6..1e3e709 100644
--- a/src/core/tags/afx-list-view.tag
+++ b/src/core/tags/afx-list-view.tag
@@ -112,6 +112,7 @@
}
this.on("mount", function(){
+ self.root.observable = opts.observable || (self.parent && self.parent.root && self.parent.root.observable) || riot.observable()
if(opts.dropdown == "true")
{
$(document).click(function(event) {
diff --git a/src/core/tags/afx-switch.tag b/src/core/tags/afx-switch.tag
index 1cc93d3..153b32b 100644
--- a/src/core/tags/afx-switch.tag
+++ b/src/core/tags/afx-switch.tag
@@ -6,7 +6,7 @@
else
this.swon = false
var self = this
- this.root.observable = opts.observable
+ //this.root.observable = opts.observable
if(opts.enable != undefined)
this.enable = opts.enable
else
@@ -31,6 +31,9 @@
opts.swon = !self.swon
self.update()
}
+ /*this.on("mount", function(){
+ self.root.observable = (self.parent && self.parent.root && self.parent.root.observable) || opts.observable || riot.observable()
+ })*/
this.on("update", function(e){
self.swon = opts.swon
self.onchange = opts.onchange
diff --git a/src/core/tags/afx-tab-bar.tag b/src/core/tags/afx-tab-bar.tag
index 37cd375..f30e8fa 100644
--- a/src/core/tags/afx-tab-bar.tag
+++ b/src/core/tags/afx-tab-bar.tag
@@ -3,7 +3,6 @@
+
\ No newline at end of file
diff --git a/src/core/tags/afx-vbox.tag b/src/core/tags/afx-vbox.tag
index e8208ae..43327a0 100644
--- a/src/core/tags/afx-vbox.tag
+++ b/src/core/tags/afx-vbox.tag
@@ -6,6 +6,7 @@
var self = this
this.rid = $(self.root).attr("data-id") || Math.floor(Math.random() * 100000) + 1
this.on('mount', function(){
+ self.root.observable = (self.parent && self.parent.root && self.parent.root.observable) || opts.observable || riot.observable()
$(self.refs.container)
.css("display","flex")
.css("flex-direction","column")
@@ -32,6 +33,16 @@
var csize, ocheight = 0, avaiheight;
avaiheight = $(self.root).height()
avaiwidth = $(self.root).width()
+ /*if(avaiheight == 0)
+ {
+ avaiheight = $(self.parent.root).height()
+ $(self.root).css("height", avaiheight+"px")
+ }
+ if(avaiwidth == 0)
+ {
+ avaiwidth = $(self.parent.root).width()
+ $(self.root).css("height", avaiwidth+"px")
+ }*/
$(self.refs.container).css("height",avaiheight + "px")
$(self.refs.container)
.children()
diff --git a/src/core/vfs.coffee b/src/core/vfs.coffee
index a836a99..0d66bd1 100644
--- a/src/core/vfs.coffee
+++ b/src/core/vfs.coffee
@@ -1,5 +1,5 @@
String.prototype.asFileHandler = () ->
- list = @split ":///"
+ list = @split "://"
handlers = _API.VFS.findHandlers list[0]
if not handlers or handlers.length is 0
_courrier.osfail __("VFS unknown handler: {0}", @), (_API.throwe "OS.VFS"), @
@@ -25,7 +25,7 @@ class BaseFileHandler
@ready = false
return unless p
@path = p.toString()
- list = @path.split ":///"
+ list = @path.split "://"
@protocol = list[0]
return unless list.length > 1
re = list[1].replace(/^\/+|\/+$/g, '')
@@ -67,7 +67,7 @@ class BaseFileHandler
return _courrier.osfail __("VFS Cannot encode file: {0}", me.path), (_API.throwe "OS.VFS"), e
parent: () ->
return @ if @isRoot()
- return (@protocol + ":///" + (@genealogy.slice 0 , @genealogy.length - 1).join "/")
+ return (@protocol + "://" + (@genealogy.slice 0 , @genealogy.length - 1).join "/")
onready: (f, err) ->
# read meta data
diff --git a/src/core/vfs/GoogleDriveHandler.coffee b/src/core/vfs/GoogleDriveHandler.coffee
index bef385d..397e4a4 100644
--- a/src/core/vfs/GoogleDriveHandler.coffee
+++ b/src/core/vfs/GoogleDriveHandler.coffee
@@ -1,6 +1,6 @@
# GoogleDrive File Handler
-G_CACHE = {"gdv:///":{ id: "root", mime: 'dir' } }
+G_CACHE = {"gdv://":{ id: "root", mime: 'dir' } }
class GoogleDriveHandler extends this.OS.API.VFS.BaseFileHandler
constructor: (path) ->
@@ -17,7 +17,7 @@ class GoogleDriveHandler extends this.OS.API.VFS.BaseFileHandler
fn = (r) ->
return f() if r
# perform the login
- G_CACHE = {"gdv:///":{ id: "root", mime: 'dir' } }
+ G_CACHE = {"gdv://":{ id: "root", mime: 'dir' } }
gapi.auth2.getAuthInstance().signIn()
if _API.libready @setting.apilink
@@ -316,7 +316,7 @@ self.OS.API.onsearch "Google Drive", (t) ->
return arr
self.OS.onexit "cleanUpGoogleDrive", () ->
- G_CACHE = { "gdv:///": { id: "root", mime: 'dir' } }
+ G_CACHE = { "gdv://": { id: "root", mime: 'dir' } }
return unless _OS.setting.VFS.gdrive and _API.libready _OS.setting.VFS.gdrive.apilink
auth2 = gapi.auth2.getAuthInstance()
return unless auth2
diff --git a/src/packages/CodeBlock/main.coffee b/src/packages/CodeBlock/main.coffee
index fb7bf76..7ce50ad 100644
--- a/src/packages/CodeBlock/main.coffee
+++ b/src/packages/CodeBlock/main.coffee
@@ -80,7 +80,7 @@ class CodeBlock extends this.OS.GUI.BaseApplication
@socket.onopen = () ->
console.log "socket open"
enc = new TextEncoder "utf-8"
- me.socket.send enc.encode me.blen + "os:///packages/packages.json"
+ me.socket.send enc.encode me.blen + "os://packages/packages.json"
@socket.onmessage = (e) ->
console.log e.data
diff --git a/src/packages/Files/main.coffee b/src/packages/Files/main.coffee
index 0ccee9c..e1750bd 100644
--- a/src/packages/Files/main.coffee
+++ b/src/packages/Files/main.coffee
@@ -8,7 +8,7 @@ class Files extends this.OS.GUI.BaseApplication
@view = @find "fileview"
@navinput = @find "navinput"
@navbar = @find "nav-bar"
- @currdir = if @args and @args.length > 0 then @args[0].asFileHandler() else "home:///".asFileHandler()
+ @currdir = if @args and @args.length > 0 then @args[0].asFileHandler() else "home://".asFileHandler()
@favo = @find "favouri"
@clipboard = undefined
diff --git a/src/packages/Setting/Makefile b/src/packages/Setting/Makefile
new file mode 100644
index 0000000..608ed0a
--- /dev/null
+++ b/src/packages/Setting/Makefile
@@ -0,0 +1,11 @@
+coffee_files = main.coffee
+
+jsfiles =
+
+cssfiles = main.css
+
+copyfiles = scheme.html package.json schemes
+
+
+PKG_NAME=Setting
+include ../pkg.mk
\ No newline at end of file
diff --git a/src/packages/Setting/main.coffee b/src/packages/Setting/main.coffee
new file mode 100644
index 0000000..a9cd94e
--- /dev/null
+++ b/src/packages/Setting/main.coffee
@@ -0,0 +1,25 @@
+class Setting extends this.OS.GUI.BaseApplication
+ constructor: (args) ->
+ super "Setting", args
+
+ main: () ->
+ me = @
+ @container = @find "container"
+ @container.setTabs [
+ {
+ text: "Appearance",
+ iconclass: "fa fa-paint-brush",
+ url: "#{@path()}/schemes/appearance.html",
+ f: () ->
+ console.log "finish init appearance"
+ },
+ {
+ text: "VFS",
+ iconclass: "fa fa-inbox" ,
+ url: "#{@path()}/schemes/vfs.html" ,
+ f: () ->
+ console.log "finish init VFS"
+ }
+ ]
+Setting.singleton = true
+this.OS.register "Setting", Setting
\ No newline at end of file
diff --git a/src/packages/Setting/main.css b/src/packages/Setting/main.css
new file mode 100644
index 0000000..1eb5e66
--- /dev/null
+++ b/src/packages/Setting/main.css
@@ -0,0 +1,11 @@
+afx-app-window[data-id = "setting-window"] afx-tab-container afx-tab-bar afx-list-view > div > ul > li{
+ float:none;
+ border-radius: 0;
+ font-weight: bold;
+ padding-top:3px;
+ padding-bottom: 3px;
+ border:0;
+}
+afx-app-window[data-id = "setting-window"] afx-tab-container div[data-ref="container"]{
+ border-left: 1px solid #cbcbcb;
+}
\ No newline at end of file
diff --git a/src/packages/Setting/package.json b/src/packages/Setting/package.json
new file mode 100644
index 0000000..ecdeeac
--- /dev/null
+++ b/src/packages/Setting/package.json
@@ -0,0 +1,13 @@
+{
+ "app":"Setting",
+ "name":"System setting",
+ "description":"System setting",
+ "info":{
+ "author": "Xuan Sang LE",
+ "email": "xsang.le@gmail.com"
+ },
+ "version":"0.1a",
+ "category":"System",
+ "iconclass":"fa fa-wrench",
+ "mimes":["none"]
+}
\ No newline at end of file
diff --git a/src/packages/Setting/scheme.html b/src/packages/Setting/scheme.html
new file mode 100644
index 0000000..d1727fd
--- /dev/null
+++ b/src/packages/Setting/scheme.html
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/Setting/schemes/appearance.html b/src/packages/Setting/schemes/appearance.html
new file mode 100644
index 0000000..0eb3fb1
--- /dev/null
+++ b/src/packages/Setting/schemes/appearance.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/packages/Setting/schemes/vfs.html b/src/packages/Setting/schemes/vfs.html
new file mode 100644
index 0000000..f715fbe
--- /dev/null
+++ b/src/packages/Setting/schemes/vfs.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/themes/antos/afx-tab-container.css b/src/themes/antos/afx-tab-container.css
new file mode 100644
index 0000000..2765e7d
--- /dev/null
+++ b/src/themes/antos/afx-tab-container.css
@@ -0,0 +1,3 @@
+afx-tab-container{
+ display: block;
+}
\ No newline at end of file