##// END OF EJS Templates
Flex box system improvements...
Jonathan Frederic -
Show More
@@ -6,20 +6,22 b' require(["notebook/js/widget"], function(){'
6
6
7 render : function(){
7 render : function(){
8 this.$el = $('<div />')
8 this.$el = $('<div />')
9 .addClass('widget_container')
9 .addClass(this.model.comm.comm_id);
10 .addClass(this.model.comm.comm_id);
10 },
11 },
11
12
12 update : function(){
13 update : function(){
13 if (this.model.get('vbox')) {
14
14 this.$el.addClass('vbox');
15 // Apply flexible box model properties by adding and removing
15 } else {
16 // corrosponding CSS classes.
16 this.$el.removeClass('vbox');
17 // Defined in IPython/html/static/base/less/flexbox.less
17 }
18 var flex_properties = ['vbox', 'hbox', 'center', 'end', 'center'];
18
19 for (var index in flex_properties) {
19 if (this.model.get('hbox')) {
20 if (this.model.get('_' + flex_properties[index])) {
20 this.$el.addClass('hbox');
21 this.$el.addClass(flex_properties[index]);
21 } else {
22 } else {
22 this.$el.removeClass('hbox');
23 this.$el.removeClass(flex_properties[index]);
24 }
23 }
25 }
24 },
26 },
25 });
27 });
@@ -1,25 +1,20 b''
1
1
2 div.widget_area {
2 div.widget_container {
3 page-break-inside: avoid;
3 .box-flex2();
4 .vbox();
4 .border-box-sizing();
5 }
5 }
6
6
7 div.widget_hbox {
7 div.widget_area {
8 page-break-inside: avoid;
8 .hbox();
9 .hbox();
9 }
10 }
10
11
11 div.widget_vbox {
12 .vbox();
13 }
14
15 div.widget_item {
16 display: inline-block;
17 }
18
19 /* This class is for the widget subarea inside the widget_area and after
12 /* This class is for the widget subarea inside the widget_area and after
20 the prompt div. */
13 the prompt div. */
21 div.widget_subarea {
14 div.widget_subarea {
22 padding: 0.44em 0.4em 0.4em 1px;
15 padding: 0.44em 0.4em 0.4em 1px;
23 margin-left: 6px;
16 margin-left: 6px;
24 .box-flex1();
17 .border-box-sizing();
18 .vbox();
19 .box-flex2()
25 }
20 }
@@ -165,5 +165,10 b' h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anch'
165 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
165 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
166 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
166 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
167 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
167 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
168 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
169 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;display:block;}
170 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;}
171 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;display:block;}
168 div.widget_area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
172 div.widget_area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
173 div.widget_item{display:inline-block;}
169 div.widget_subarea{padding:0.44em 0.4em 0.4em 1px;margin-left:6px;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
174 div.widget_subarea{padding:0.44em 0.4em 0.4em 1px;margin-left:6px;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
@@ -1584,4 +1584,10 b' span#checkpoint_status,span#autosave_status{font-size:small;}'
1584 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
1584 .ipython_tooltip .tooltiptext pre{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;font-size:100%;background-color:#f7f7f7;}
1585 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
1585 .pretooltiparrow{left:0px;margin:0px;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute;}
1586 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
1586 .pretooltiparrow:before{background-color:#f7f7f7;border:1px #ababab solid;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);}
1587 .hbox{display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1588 .hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;display:block;}
1589 .vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;}
1590 .vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;display:block;}
1591 div.widget_area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1592 div.widget_item{display:inline-block;}
1587 div.widget_subarea{padding:0.44em 0.4em 0.4em 1px;margin-left:6px;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1593 div.widget_subarea{padding:0.44em 0.4em 0.4em 1px;margin-left:6px;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
@@ -4,7 +4,39 b' from IPython.utils.traitlets import Unicode, Bool'
4 class ContainerWidget(Widget):
4 class ContainerWidget(Widget):
5 target_name = Unicode('container_widget')
5 target_name = Unicode('container_widget')
6 default_view_name = Unicode('ContainerView')
6 default_view_name = Unicode('ContainerView')
7 _keys = ['vbox', 'hbox']
7 _keys = ['_vbox', '_hbox', '_start', '_end', '_center']
8 _trait_changing = False
8
9
9 hbox = Bool(True)
10 _hbox = Bool(False)
10 vbox = Bool(False) No newline at end of file
11 _vbox = Bool(False)
12 _start = Bool(False)
13 _end = Bool(False)
14 _center = Bool(False)
15
16 def hbox(self, enabled=True):
17 self._hbox = enabled
18 if enabled:
19 self._vbox = False
20
21 def vbox(self, enabled=True):
22 self._vbox = enabled
23 if enabled:
24 self._hbox = False
25
26 def start(self, enabled=True):
27 self._start = enabled
28 if enabled:
29 self._end = False
30 self._center = False
31
32 def end(self, enabled=True):
33 self._end = enabled
34 if enabled:
35 self._start = False
36 self._center = False
37
38 def center(self, enabled=True):
39 self._center = enabled
40 if enabled:
41 self._start = False
42 self._end = False
General Comments 0
You need to be logged in to leave comments. Login now