mirror of
https://github.com/atom/atom.git
synced 2026-02-09 14:15:24 -05:00
PaneColumn and PaneRow inherit from PaneDivision. Yes, I hate the name PaneDivision too.
This commit is contained in:
@@ -1,26 +1,14 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
{View} = require 'space-pen'
|
||||
Pane = require 'pane'
|
||||
PaneDivision = require 'pane-division'
|
||||
|
||||
module.exports =
|
||||
class PaneColumn extends View
|
||||
class PaneColumn extends PaneDivision
|
||||
@content: ->
|
||||
@div class: 'column'
|
||||
|
||||
@deserialize: ({children}, rootView) ->
|
||||
childViews = children.map (child) -> rootView.deserializeView(child)
|
||||
new PaneColumn(childViews)
|
||||
|
||||
initialize: (children=[]) ->
|
||||
@append(children...)
|
||||
|
||||
serialize: ->
|
||||
viewClass: "PaneColumn"
|
||||
children: @childViewStates()
|
||||
|
||||
childViewStates: ->
|
||||
$(child).view().serialize() for child in @children()
|
||||
className: ->
|
||||
"PaneColumn"
|
||||
|
||||
adjustDimensions: ->
|
||||
totalUnits = @verticalGridUnits()
|
||||
@@ -38,9 +26,7 @@ class PaneColumn extends View
|
||||
unitsSoFar += childUnits
|
||||
|
||||
horizontalGridUnits: ->
|
||||
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
|
||||
Math.max(childUnits...)
|
||||
Math.max(@horizontalChildUnits()...)
|
||||
|
||||
verticalGridUnits: ->
|
||||
childUnits = ($(child).view().verticalGridUnits() for child in @children())
|
||||
_.sum(childUnits)
|
||||
_.sum(@verticalChildUnits())
|
||||
24
src/app/pane-division.coffee
Normal file
24
src/app/pane-division.coffee
Normal file
@@ -0,0 +1,24 @@
|
||||
$ = require 'jquery'
|
||||
{View} = require 'space-pen'
|
||||
|
||||
module.exports =
|
||||
class PaneDivision extends View
|
||||
@deserialize: ({children}, rootView) ->
|
||||
childViews = children.map (child) -> rootView.deserializeView(child)
|
||||
new this(childViews)
|
||||
|
||||
initialize: (children=[]) ->
|
||||
@append(children...)
|
||||
|
||||
serialize: ->
|
||||
viewClass: @className()
|
||||
children: @childViewStates()
|
||||
|
||||
childViewStates: ->
|
||||
$(child).view().serialize() for child in @children()
|
||||
|
||||
horizontalChildUnits: ->
|
||||
$(child).view().horizontalGridUnits() for child in @children()
|
||||
|
||||
verticalChildUnits: ->
|
||||
$(child).view().verticalGridUnits() for child in @children()
|
||||
@@ -1,26 +1,14 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
{View} = require 'space-pen'
|
||||
Pane = require 'pane'
|
||||
PaneDivision = require 'pane-division'
|
||||
|
||||
module.exports =
|
||||
class PaneRow extends View
|
||||
class PaneRow extends PaneDivision
|
||||
@content: ->
|
||||
@div class: 'row'
|
||||
|
||||
@deserialize: ({children}, rootView) ->
|
||||
childViews = children.map (child) -> rootView.deserializeView(child)
|
||||
new PaneRow(childViews)
|
||||
|
||||
initialize: (children=[]) ->
|
||||
@append(children...)
|
||||
|
||||
serialize: ->
|
||||
viewClass: "PaneRow"
|
||||
children: @childViewStates()
|
||||
|
||||
childViewStates: ->
|
||||
$(child).view().serialize() for child in @children()
|
||||
className: ->
|
||||
"PaneRow"
|
||||
|
||||
adjustDimensions: ->
|
||||
totalUnits = @horizontalGridUnits()
|
||||
@@ -33,13 +21,12 @@ class PaneRow extends View
|
||||
height: '100%'
|
||||
top: 0
|
||||
left: "#{unitsSoFar / totalUnits * 100}%"
|
||||
|
||||
child.adjustDimensions()
|
||||
unitsSoFar += childUnits
|
||||
|
||||
horizontalGridUnits: ->
|
||||
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
|
||||
_.sum(childUnits)
|
||||
_.sum(@horizontalChildUnits())
|
||||
|
||||
verticalGridUnits: ->
|
||||
childUnits = ($(child).view().verticalGridUnits() for child in @children())
|
||||
Math.max(childUnits...)
|
||||
Math.max(@verticalChildUnits()...)
|
||||
|
||||
Reference in New Issue
Block a user