mirror of
https://github.com/lxsang/antos-frontend.git
synced 2024-12-27 17:58:22 +01:00
add more tags
This commit is contained in:
parent
64f055e7ce
commit
56a79e2db0
1
Makefile
1
Makefile
@ -38,6 +38,7 @@ coffees= src/core/core.coffee \
|
|||||||
src/core/tags/GridView.coffee \
|
src/core/tags/GridView.coffee \
|
||||||
src/core/tags/TabBarTag.coffee \
|
src/core/tags/TabBarTag.coffee \
|
||||||
src/core/tags/TreeViewTag.coffee \
|
src/core/tags/TreeViewTag.coffee \
|
||||||
|
src/core/tags/SliderTag.coffee \
|
||||||
src/antos.coffee
|
src/antos.coffee
|
||||||
|
|
||||||
|
|
||||||
|
25
src/core/tags/FloatListTag.coffee
Normal file
25
src/core/tags/FloatListTag.coffee
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
class FloatListTag extends ListViewTag
|
||||||
|
constructor: (r, o) ->
|
||||||
|
super r, o
|
||||||
|
me = @
|
||||||
|
@root.refresh = () ->
|
||||||
|
me.refresh()
|
||||||
|
|
||||||
|
# disable some uneccessary functions
|
||||||
|
__dropdown__: (v) ->
|
||||||
|
@set "dropdown", false if v
|
||||||
|
__buttons__: (v) ->
|
||||||
|
showlist: (e) ->
|
||||||
|
dropoff: (e) ->
|
||||||
|
calibrate: (e) ->
|
||||||
|
@refresh()
|
||||||
|
mount: () ->
|
||||||
|
@refresh()
|
||||||
|
|
||||||
|
refresh: () ->
|
||||||
|
|
||||||
|
|
||||||
|
layout: () ->
|
||||||
|
[{
|
||||||
|
el: "div", ref: "mlist"
|
||||||
|
}]
|
92
src/core/tags/SliderTag.coffee
Normal file
92
src/core/tags/SliderTag.coffee
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
class SliderTag extends Ant.OS.GUI.BaseTag
|
||||||
|
constructor: (r, o) ->
|
||||||
|
super r, o
|
||||||
|
@setopt "dragable", true
|
||||||
|
@setopt "max", 100
|
||||||
|
@setopt "value", 0
|
||||||
|
@setopt "onchanging", (e) ->
|
||||||
|
@setopt "onchange", (e) ->
|
||||||
|
|
||||||
|
|
||||||
|
__value__: () ->
|
||||||
|
@calibrate()
|
||||||
|
|
||||||
|
__max__: () ->
|
||||||
|
@calibrate()
|
||||||
|
|
||||||
|
__dragable__: (v) ->
|
||||||
|
if v
|
||||||
|
me = @
|
||||||
|
$(@root)
|
||||||
|
.mouseover () ->
|
||||||
|
$(me.refs.point).show()
|
||||||
|
.mouseout () ->
|
||||||
|
$(me.refs.point).hide()
|
||||||
|
else
|
||||||
|
$(@refs.point).hide()
|
||||||
|
$(@root)
|
||||||
|
.unbind("mouseover")
|
||||||
|
.ubbind("mouseout")
|
||||||
|
|
||||||
|
mount: () ->
|
||||||
|
me = @
|
||||||
|
@enable_dragging()
|
||||||
|
$(@refs.point).css "position", "absolute"
|
||||||
|
$(@refs.point).hide()
|
||||||
|
@observable.on "resize", (e) ->
|
||||||
|
me.calibrate()
|
||||||
|
$(@refs.container).click (e) ->
|
||||||
|
offset = $(me.refs.container).offset()
|
||||||
|
left = e.clientX - offset.left
|
||||||
|
maxw = $(me.refs.container).width()
|
||||||
|
me.set "value", left * me.get("max") / maxw
|
||||||
|
me.calibrate()
|
||||||
|
evt = { id: me.aid(), data: me.get("value") }
|
||||||
|
me.get("onchange") evt
|
||||||
|
me.get("onchanging") evt
|
||||||
|
|
||||||
|
calibrate: () ->
|
||||||
|
@set "value", @get("max") if @get("value") > @get("max")
|
||||||
|
$(@refs.container).css "width", $(@root).width() + "px"
|
||||||
|
w = $(@refs.container).width() * @get("value") / @get("max")
|
||||||
|
$(@refs.prg)
|
||||||
|
.css "width", w + "px"
|
||||||
|
.css "height", $(@refs.container).height() + "px"
|
||||||
|
if @get("dragable")
|
||||||
|
ow = w - $(@refs.point).width() / 2
|
||||||
|
top = Math.floor(($(@refs.prg).height() - $(@refs.point).height()) / 2)
|
||||||
|
$(@refs.point)
|
||||||
|
.css "left", ow + "px"
|
||||||
|
.css "top", top + "px"
|
||||||
|
|
||||||
|
enable_dragging: () ->
|
||||||
|
me = @
|
||||||
|
$(@refs.point)
|
||||||
|
.css "user-select", "none"
|
||||||
|
.css "cursor", "default"
|
||||||
|
$(@refs.point).on "mousedown", (e) ->
|
||||||
|
e.preventDefault()
|
||||||
|
offset = $(me.refs.container).offset()
|
||||||
|
$(window).on "mousemove", (e) ->
|
||||||
|
left = e.clientX - offset.left
|
||||||
|
left = if left < 0 then 0 else left
|
||||||
|
maxw = $(me.refs.container).width()
|
||||||
|
left = if left > maxw then maxw else left
|
||||||
|
me.set "value", left * me.get("max") / maxw
|
||||||
|
me.calibrate()
|
||||||
|
me.get("onchanging") { id: me.aid(), data: me.get("value") }
|
||||||
|
|
||||||
|
$(window).on "mouseup", (e) ->
|
||||||
|
me.get("onchange") { id: me.aid(), data: me.get("value") }
|
||||||
|
$(window).unbind("mousemove", null)
|
||||||
|
$(window).unbind("mouseup", null)
|
||||||
|
|
||||||
|
layout: () ->
|
||||||
|
[{
|
||||||
|
el: "div", class: "container", ref: "container", children: [
|
||||||
|
{ el: "div", class: "progress", ref: "prg" },
|
||||||
|
{ el: "div", class: "dragpoint", ref: "point" }
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
|
||||||
|
Ant.OS.GUI.define "afx-slider", SliderTag
|
11
src/core/tags/TabContainer.coffee
Normal file
11
src/core/tags/TabContainer.coffee
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
class TabContainer extends Ant.OS.GUI.BaseTag
|
||||||
|
constructor: (r, o) ->
|
||||||
|
super r, o
|
||||||
|
@setopt "dir", "column" # or row
|
||||||
|
|
||||||
|
layout: () ->
|
||||||
|
[{
|
||||||
|
el: "afx-tile", ref: "wrapper", chidren: [
|
||||||
|
{ el: "afx-tab-bar" }
|
||||||
|
]
|
||||||
|
}]
|
@ -1,38 +1,36 @@
|
|||||||
class TileLayoutTag extends Ant.OS.GUI.BaseTag
|
class TileLayoutTag extends Ant.OS.GUI.BaseTag
|
||||||
constructor: (r, o, @conf) ->
|
constructor: (r, o) ->
|
||||||
super r, o
|
super r, o
|
||||||
@setopt @conf.opt, "grow"
|
@setopt "name", undefined
|
||||||
|
@setopt "dir", undefined
|
||||||
|
# @setopt @conf.opt, "grow"
|
||||||
|
|
||||||
|
__name__: (v) ->
|
||||||
|
return unless v
|
||||||
|
$(@refs.yield)
|
||||||
|
.removeClass()
|
||||||
|
.addClass("afx-#{v}-container")
|
||||||
|
@calibrate()
|
||||||
|
|
||||||
|
__dir__: (v) ->
|
||||||
|
return unless v
|
||||||
|
$(@refs.yield)
|
||||||
|
.css("flex-direction", v)
|
||||||
|
@calibrate()
|
||||||
|
|
||||||
mount: () ->
|
mount: () ->
|
||||||
$(@root).css("display", "block")
|
$(@root).css("display", "block")
|
||||||
$(@refs.yield)
|
$(@refs.yield)
|
||||||
.addClass("afx-#{@conf.name}-container")
|
|
||||||
.css("display", "flex")
|
.css("display", "flex")
|
||||||
.css("flex-direction", @conf.dir)
|
|
||||||
.css("width", "100%")
|
.css("width", "100%")
|
||||||
me = @
|
me = @
|
||||||
@observable.on "resize", (e) -> me.calibrate()
|
@observable.on "resize", (e) -> me.calibrate()
|
||||||
# @observable.on "calibrate", (e) -> me.calibrate()
|
|
||||||
@calibrate()
|
|
||||||
|
|
||||||
calibrate: () ->
|
calibrate: () ->
|
||||||
|
return @hcalibrate() if @get("dir") is "row"
|
||||||
|
@vcalibrate() if @get("dir") is "column"
|
||||||
|
|
||||||
|
hcalibrate: () ->
|
||||||
layout: () ->
|
|
||||||
[{
|
|
||||||
el: "div", ref: "yield"
|
|
||||||
}]
|
|
||||||
|
|
||||||
|
|
||||||
class HBoxTag extends TileLayoutTag
|
|
||||||
constructor: (r, o) ->
|
|
||||||
super r, o, {
|
|
||||||
name: "hbox",
|
|
||||||
dir: "row",
|
|
||||||
opt: "data-width"
|
|
||||||
}
|
|
||||||
|
|
||||||
calibrate: () ->
|
|
||||||
auto_width = []
|
auto_width = []
|
||||||
ocwidth = 0
|
ocwidth = 0
|
||||||
avaiheight = $(@root).height()
|
avaiheight = $(@root).height()
|
||||||
@ -56,16 +54,7 @@ class HBoxTag extends TileLayoutTag
|
|||||||
$(v).css "width", "#{csize}px"
|
$(v).css "width", "#{csize}px"
|
||||||
@observable.trigger "hboxchange", { id: @aid(), data: { w: avaiWidth, h: avaiheight } }
|
@observable.trigger "hboxchange", { id: @aid(), data: { w: avaiWidth, h: avaiheight } }
|
||||||
|
|
||||||
|
vcalibrate: () ->
|
||||||
class VBoxTag extends TileLayoutTag
|
|
||||||
constructor: (r, o) ->
|
|
||||||
super r, o, {
|
|
||||||
name: "vbox",
|
|
||||||
dir: "column",
|
|
||||||
opt: "data-height"
|
|
||||||
}
|
|
||||||
|
|
||||||
calibrate: () ->
|
|
||||||
auto_height = []
|
auto_height = []
|
||||||
ocheight = 0
|
ocheight = 0
|
||||||
avaiheight = $(@root).height()
|
avaiheight = $(@root).height()
|
||||||
@ -90,5 +79,25 @@ class VBoxTag extends TileLayoutTag
|
|||||||
|
|
||||||
@observable.trigger "vboxchange", { id: @aid(), data: { w: avaiwidth, h: avaiheight } }
|
@observable.trigger "vboxchange", { id: @aid(), data: { w: avaiwidth, h: avaiheight } }
|
||||||
|
|
||||||
|
layout: () ->
|
||||||
|
[{
|
||||||
|
el: "div", ref: "yield"
|
||||||
|
}]
|
||||||
|
|
||||||
|
|
||||||
|
class HBoxTag extends TileLayoutTag
|
||||||
|
constructor: (r, o) ->
|
||||||
|
super r, o
|
||||||
|
@set "dir", "row"
|
||||||
|
@set "name", "hbox"
|
||||||
|
|
||||||
|
class VBoxTag extends TileLayoutTag
|
||||||
|
constructor: (r, o) ->
|
||||||
|
super r, o
|
||||||
|
@set "dir", "column"
|
||||||
|
@set "name", "vbox"
|
||||||
|
|
||||||
|
|
||||||
|
Ant.OS.GUI.define "afx-tile", TileLayoutTag
|
||||||
Ant.OS.GUI.define "afx-hbox", HBoxTag
|
Ant.OS.GUI.define "afx-hbox", HBoxTag
|
||||||
Ant.OS.GUI.define "afx-vbox", VBoxTag
|
Ant.OS.GUI.define "afx-vbox", VBoxTag
|
@ -17,14 +17,18 @@ class TreeViewItemPrototype extends Ant.OS.GUI.BaseTag
|
|||||||
@set "nodes", v.nodes if v.nodes
|
@set "nodes", v.nodes if v.nodes
|
||||||
|
|
||||||
__selected__: (v) ->
|
__selected__: (v) ->
|
||||||
|
$(@refs.wrapper).removeClass()
|
||||||
return $(@refs.wrapper).addClass("afx_tree_item_selected") if v
|
return $(@refs.wrapper).addClass("afx_tree_item_selected") if v
|
||||||
$(@refs.wrapper).removeClass("afx_tree_item_selected")
|
|
||||||
|
|
||||||
__open__: (v) ->
|
__open__: (v) ->
|
||||||
|
me = @
|
||||||
$(@refs.toggle)
|
$(@refs.toggle)
|
||||||
.removeClass()
|
.removeClass()
|
||||||
return unless @is_folder()
|
return unless @is_folder()
|
||||||
if(v)
|
if(v)
|
||||||
|
if @get("fetch")
|
||||||
|
@get("fetch") @root, (d) ->
|
||||||
|
me.set "data", d
|
||||||
$(@refs.childnodes).show()
|
$(@refs.childnodes).show()
|
||||||
else
|
else
|
||||||
$(@refs.childnodes).hide()
|
$(@refs.childnodes).hide()
|
||||||
@ -143,7 +147,7 @@ class TreeViewTag extends Ant.OS.GUI.BaseTag
|
|||||||
@setopt "treepath", @aid()
|
@setopt "treepath", @aid()
|
||||||
@indexcounter = 0
|
@indexcounter = 0
|
||||||
|
|
||||||
__selectedItem__: (v) ->
|
__selectedItem: (v) ->
|
||||||
return unless v
|
return unless v
|
||||||
@get("selectedItem").set "selected", false if @get("selectedItem")
|
@get("selectedItem").set "selected", false if @get("selectedItem")
|
||||||
v.set "selected", true
|
v.set "selected", true
|
||||||
@ -154,7 +158,6 @@ class TreeViewTag extends Ant.OS.GUI.BaseTag
|
|||||||
@set "selectedItem", e.item
|
@set "selectedItem", e.item
|
||||||
evt = { id: @aid(), data: e }
|
evt = { id: @aid(), data: e }
|
||||||
if flag
|
if flag
|
||||||
console.log "dblclick"
|
|
||||||
@get("ontreedbclick") evt
|
@get("ontreedbclick") evt
|
||||||
@observable.trigger "treedbclick", evt
|
@observable.trigger "treedbclick", evt
|
||||||
else
|
else
|
||||||
|
@ -44,6 +44,7 @@ class Ant.OS.GUI.BaseTag
|
|||||||
if opt is "*"
|
if opt is "*"
|
||||||
@set k, v for k, v of value
|
@set k, v for k, v of value
|
||||||
else
|
else
|
||||||
|
@["__#{opt}"](value) if @["__#{opt}"]
|
||||||
@opts[opt] = value
|
@opts[opt] = value
|
||||||
@["__#{opt}__"](value) if @["__#{opt}__"]
|
@["__#{opt}__"](value) if @["__#{opt}__"]
|
||||||
@
|
@
|
||||||
|
@ -42,6 +42,7 @@ class ShowCase extends this.OS.GUI.BaseApplication
|
|||||||
<afx-hbox>
|
<afx-hbox>
|
||||||
<afx-vbox data-width="150">
|
<afx-vbox data-width="150">
|
||||||
<afx-tree-view data-id="tree" />
|
<afx-tree-view data-id="tree" />
|
||||||
|
<afx-slider data-id="slider" data-height="30" value="50"/>
|
||||||
</afx-vbox>
|
</afx-vbox>
|
||||||
<afx-resizer data-width="5" />
|
<afx-resizer data-width="5" />
|
||||||
<afx-vbox data-width="grow">
|
<afx-vbox data-width="grow">
|
||||||
@ -192,6 +193,10 @@ class ShowCase extends this.OS.GUI.BaseApplication
|
|||||||
me.subwin.observable.on "treedbclick", (e) ->
|
me.subwin.observable.on "treedbclick", (e) ->
|
||||||
console.log "observable treedbclick", e
|
console.log "observable treedbclick", e
|
||||||
|
|
||||||
|
slider = $ "[data-id='slider']", scheme[0]
|
||||||
|
slider[0].set "onchanging", (v) ->
|
||||||
|
console.log v
|
||||||
|
|
||||||
mnFile: () ->
|
mnFile: () ->
|
||||||
#console.log file
|
#console.log file
|
||||||
me = @
|
me = @
|
||||||
|
Loading…
Reference in New Issue
Block a user