mirror of
https://github.com/atom/atom.git
synced 2026-01-24 22:38:20 -05:00
Move pane size adjustment code into Pane objects
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
{View} = require 'space-pen'
|
||||
Pane = require 'pane'
|
||||
|
||||
@@ -19,4 +20,27 @@ class PaneColumn extends View
|
||||
children: @childViewStates()
|
||||
|
||||
childViewStates: ->
|
||||
$(child).view().serialize() for child in @children()
|
||||
$(child).view().serialize() for child in @children()
|
||||
|
||||
adjustDimensions: ->
|
||||
totalUnits = @verticalGridUnits()
|
||||
unitsSoFar = 0
|
||||
for child in @children()
|
||||
child = $(child).view()
|
||||
childUnits = child.verticalGridUnits()
|
||||
child.css
|
||||
width: '100%'
|
||||
height: "#{childUnits / totalUnits * 100}%"
|
||||
top: "#{unitsSoFar / totalUnits * 100}%"
|
||||
left: 0
|
||||
|
||||
child.adjustDimensions()
|
||||
unitsSoFar += childUnits
|
||||
|
||||
horizontalGridUnits: ->
|
||||
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
|
||||
Math.max(childUnits...)
|
||||
|
||||
verticalGridUnits: ->
|
||||
childUnits = ($(child).view().verticalGridUnits() for child in @children())
|
||||
_.sum(childUnits)
|
||||
@@ -1,4 +1,5 @@
|
||||
$ = require 'jquery'
|
||||
_ = require 'underscore'
|
||||
{View} = require 'space-pen'
|
||||
Pane = require 'pane'
|
||||
|
||||
@@ -19,4 +20,26 @@ class PaneRow extends View
|
||||
children: @childViewStates()
|
||||
|
||||
childViewStates: ->
|
||||
$(child).view().serialize() for child in @children()
|
||||
$(child).view().serialize() for child in @children()
|
||||
|
||||
adjustDimensions: ->
|
||||
totalUnits = @horizontalGridUnits()
|
||||
unitsSoFar = 0
|
||||
for child in @children()
|
||||
child = $(child).view()
|
||||
childUnits = child.horizontalGridUnits()
|
||||
child.css
|
||||
width: "#{childUnits / totalUnits * 100}%"
|
||||
height: '100%'
|
||||
top: 0
|
||||
left: "#{unitsSoFar / totalUnits * 100}%"
|
||||
child.adjustDimensions()
|
||||
unitsSoFar += childUnits
|
||||
|
||||
horizontalGridUnits: ->
|
||||
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
|
||||
_.sum(childUnits)
|
||||
|
||||
verticalGridUnits: ->
|
||||
childUnits = ($(child).view().verticalGridUnits() for child in @children())
|
||||
Math.max(childUnits...)
|
||||
|
||||
@@ -11,4 +11,13 @@ class Pane extends View
|
||||
|
||||
serialize: ->
|
||||
viewClass: "Pane"
|
||||
wrappedView: @wrappedView.serialize()
|
||||
wrappedView: @wrappedView.serialize()
|
||||
|
||||
adjustDimensions: ->
|
||||
|
||||
horizontalGridUnits: ->
|
||||
1
|
||||
|
||||
verticalGridUnits: ->
|
||||
1
|
||||
|
||||
|
||||
@@ -114,54 +114,9 @@ class RootView extends View
|
||||
@adjustSplitPanes()
|
||||
view
|
||||
|
||||
adjustSplitPanes: (element = @panes.children(':first'))->
|
||||
if element.hasClass('row')
|
||||
totalUnits = @horizontalGridUnits(element)
|
||||
unitsSoFar = 0
|
||||
for child in element.children()
|
||||
child = $(child)
|
||||
childUnits = @horizontalGridUnits(child)
|
||||
child.css
|
||||
width: "#{childUnits / totalUnits * 100}%"
|
||||
height: '100%'
|
||||
top: 0
|
||||
left: "#{unitsSoFar / totalUnits * 100}%"
|
||||
@adjustSplitPanes(child)
|
||||
unitsSoFar += childUnits
|
||||
|
||||
else if element.hasClass('column')
|
||||
totalUnits = @verticalGridUnits(element)
|
||||
unitsSoFar = 0
|
||||
for child in element.children()
|
||||
child = $(child)
|
||||
childUnits = @verticalGridUnits(child)
|
||||
child.css
|
||||
width: '100%'
|
||||
height: "#{childUnits / totalUnits * 100}%"
|
||||
top: "#{unitsSoFar / totalUnits * 100}%"
|
||||
left: 0
|
||||
@adjustSplitPanes(child)
|
||||
unitsSoFar += childUnits
|
||||
|
||||
horizontalGridUnits: (element) ->
|
||||
if element.is('.row, .column')
|
||||
childUnits = (@horizontalGridUnits($(child)) for child in element.children())
|
||||
if element.hasClass('row')
|
||||
_.sum(childUnits)
|
||||
else # it's a column
|
||||
Math.max(childUnits...)
|
||||
else
|
||||
1
|
||||
|
||||
verticalGridUnits: (element) ->
|
||||
if element.is('.row, .column')
|
||||
childUnits = (@verticalGridUnits($(child)) for child in element.children())
|
||||
if element.hasClass('column')
|
||||
_.sum(childUnits)
|
||||
else # it's a row
|
||||
Math.max(childUnits...)
|
||||
else
|
||||
1
|
||||
adjustSplitPanes: ->
|
||||
view = @panes.children().first().view()
|
||||
view.adjustDimensions() if view
|
||||
|
||||
toggleFileFinder: ->
|
||||
return unless @project
|
||||
|
||||
Reference in New Issue
Block a user