Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3c053a51
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3c053a51
编写于
4月 27, 2018
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip: splitview without render
上级
240b4857
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
30 addition
and
37 deletion
+30
-37
src/vs/base/browser/ui/splitview/panelview.ts
src/vs/base/browser/ui/splitview/panelview.ts
+8
-11
src/vs/base/browser/ui/splitview/splitview.ts
src/vs/base/browser/ui/splitview/splitview.ts
+2
-2
src/vs/base/test/browser/ui/splitview/splitview.test.ts
src/vs/base/test/browser/ui/splitview/splitview.test.ts
+8
-9
src/vs/workbench/browser/parts/views/panelViewlet.ts
src/vs/workbench/browser/parts/views/panelViewlet.ts
+3
-3
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
+2
-2
src/vs/workbench/parts/terminal/browser/terminalTab.ts
src/vs/workbench/parts/terminal/browser/terminalTab.ts
+7
-10
未找到文件。
src/vs/base/browser/ui/splitview/panelview.ts
浏览文件 @
3c053a51
...
...
@@ -42,23 +42,19 @@ export abstract class Panel implements IView {
private
ariaHeaderLabel
:
string
;
private
styles
:
IPanelStyles
|
undefined
=
undefined
;
private
el
:
HTMLElement
;
readonly
element
:
HTMLElement
;
private
header
:
HTMLElement
;
protected
disposables
:
IDisposable
[]
=
[];
private
_onDidChange
=
new
Emitter
<
number
|
undefined
>
();
readonly
onDidChange
:
Event
<
number
|
undefined
>
=
this
.
_onDidChange
.
event
;
get
element
():
HTMLElement
{
return
this
.
el
;
}
get
draggableElement
():
HTMLElement
{
return
this
.
header
;
}
get
dropTargetElement
():
HTMLElement
{
return
this
.
el
;
return
this
.
el
ement
;
}
private
_dropBackground
:
Color
|
undefined
;
...
...
@@ -109,6 +105,9 @@ export abstract class Panel implements IView {
this
.
ariaHeaderLabel
=
options
.
ariaHeaderLabel
||
''
;
this
.
_minimumBodySize
=
typeof
options
.
minimumBodySize
===
'
number
'
?
options
.
minimumBodySize
:
120
;
this
.
_maximumBodySize
=
typeof
options
.
maximumBodySize
===
'
number
'
?
options
.
maximumBodySize
:
Number
.
POSITIVE_INFINITY
;
this
.
element
=
$
(
'
.panel
'
);
this
.
render
();
}
isExpanded
():
boolean
{
...
...
@@ -139,11 +138,9 @@ export abstract class Panel implements IView {
this
.
_onDidChange
.
fire
();
}
render
(
container
:
HTMLElement
):
void
{
this
.
el
=
append
(
container
,
$
(
'
.panel
'
));
protected
render
():
void
{
this
.
header
=
$
(
'
.panel-header
'
);
append
(
this
.
el
,
this
.
header
);
append
(
this
.
el
ement
,
this
.
header
);
this
.
header
.
setAttribute
(
'
tabindex
'
,
'
0
'
);
this
.
header
.
setAttribute
(
'
role
'
,
'
toolbar
'
);
this
.
header
.
setAttribute
(
'
aria-label
'
,
this
.
ariaHeaderLabel
);
...
...
@@ -177,7 +174,7 @@ export abstract class Panel implements IView {
// onHeaderKeyDown.filter(e => e.keyCode === KeyCode.DownArrow)
// .event(focusNext, this, this.disposables);
const
body
=
append
(
this
.
el
,
$
(
'
.panel-body
'
));
const
body
=
append
(
this
.
el
ement
,
$
(
'
.panel-body
'
));
this
.
renderBody
(
body
);
}
...
...
src/vs/base/browser/ui/splitview/splitview.ts
浏览文件 @
3c053a51
...
...
@@ -20,10 +20,10 @@ export interface ISplitViewOptions {
}
export
interface
IView
{
readonly
element
:
HTMLElement
;
readonly
minimumSize
:
number
;
readonly
maximumSize
:
number
;
readonly
onDidChange
:
Event
<
number
|
undefined
>
;
render
(
container
:
HTMLElement
,
orientation
:
Orientation
):
void
;
layout
(
size
:
number
,
orientation
:
Orientation
):
void
;
}
...
...
@@ -169,7 +169,7 @@ export class SplitView implements IDisposable {
this
.
sashItems
.
splice
(
index
-
1
,
0
,
sashItem
);
}
view
.
render
(
container
,
this
.
orientation
);
container
.
appendChild
(
view
.
element
);
this
.
relayout
(
index
);
this
.
state
=
State
.
Idle
;
}
...
...
src/vs/base/test/browser/ui/splitview/splitview.test.ts
浏览文件 @
3c053a51
...
...
@@ -19,8 +19,11 @@ class TestView implements IView {
get
maximumSize
():
number
{
return
this
.
_maximumSize
;
}
set
maximumSize
(
size
:
number
)
{
this
.
_maximumSize
=
size
;
this
.
_onDidChange
.
fire
();
}
private
_onDidRender
=
new
Emitter
<
{
container
:
HTMLElement
;
orientation
:
Orientation
}
>
();
readonly
onDidRender
=
this
.
_onDidRender
.
event
;
private
_element
:
HTMLElement
=
document
.
createElement
(
'
div
'
);
get
element
():
HTMLElement
{
this
.
_onDidGetElement
.
fire
();
return
this
.
_element
;
}
private
_onDidGetElement
=
new
Emitter
<
void
>
();
readonly
onDidGetElement
=
this
.
_onDidGetElement
.
event
;
private
_size
=
0
;
get
size
():
number
{
return
this
.
_size
;
}
...
...
@@ -37,10 +40,6 @@ class TestView implements IView {
assert
(
_minimumSize
<=
_maximumSize
,
'
splitview view minimum size must be <= maximum size
'
);
}
render
(
container
:
HTMLElement
,
orientation
:
Orientation
):
void
{
this
.
_onDidRender
.
fire
({
container
,
orientation
});
}
layout
(
size
:
number
,
orientation
:
Orientation
):
void
{
this
.
_size
=
size
;
this
.
_onDidLayout
.
fire
({
size
,
orientation
});
...
...
@@ -52,7 +51,7 @@ class TestView implements IView {
dispose
():
void
{
this
.
_onDidChange
.
dispose
();
this
.
_onDid
Render
.
dispose
();
this
.
_onDid
GetElement
.
dispose
();
this
.
_onDidLayout
.
dispose
();
this
.
_onDidFocus
.
dispose
();
}
...
...
@@ -136,7 +135,7 @@ suite('Splitview', () => {
const
layoutDisposable
=
view
.
onDidLayout
(()
=>
didLayout
=
true
);
let
didRender
=
false
;
const
renderDisposable
=
view
.
onDid
Render
(()
=>
didRender
=
true
);
const
renderDisposable
=
view
.
onDid
GetElement
(()
=>
didRender
=
true
);
splitview
.
addView
(
view
,
20
);
...
...
@@ -322,7 +321,7 @@ suite('Splitview', () => {
splitview
.
addView
(
view1
,
142
,
0
);
assert
.
equal
(
view1
.
size
,
986
,
'
first view is stretched
'
);
view2
.
onDid
Render
(()
=>
{
view2
.
onDid
GetElement
(()
=>
{
assert
.
throws
(()
=>
splitview
.
resizeView
(
1
,
922
));
assert
.
throws
(()
=>
splitview
.
resizeView
(
1
,
922
));
});
...
...
src/vs/workbench/browser/parts/views/panelViewlet.ts
浏览文件 @
3c053a51
...
...
@@ -65,10 +65,10 @@ export abstract class ViewletPanel extends Panel {
this
.
actionRunner
=
options
.
actionRunner
;
}
render
(
container
:
HTMLElement
):
void
{
super
.
render
(
container
);
protected
render
(
):
void
{
super
.
render
();
const
focusTracker
=
trackFocus
(
container
);
const
focusTracker
=
trackFocus
(
this
.
element
);
this
.
disposables
.
push
(
focusTracker
);
this
.
disposables
.
push
(
focusTracker
.
onDidFocus
(()
=>
this
.
_onDidFocus
.
fire
()));
}
...
...
src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts
浏览文件 @
3c053a51
...
...
@@ -768,8 +768,8 @@ export class RepositoryPanel extends ViewletPanel {
this
.
menus
=
instantiationService
.
createInstance
(
SCMMenus
,
repository
.
provider
);
}
render
(
container
:
HTMLElement
):
void
{
super
.
render
(
container
);
protected
render
(
):
void
{
super
.
render
();
this
.
menus
.
onDidChangeTitle
(
this
.
updateActions
,
this
,
this
.
disposables
);
}
...
...
src/vs/workbench/parts/terminal/browser/terminalTab.ts
浏览文件 @
3c053a51
...
...
@@ -115,9 +115,8 @@ class SplitPaneContainer {
}
private
_addChild
(
size
:
number
,
instance
:
ITerminalInstance
,
index
:
number
):
void
{
const
child
=
new
SplitPane
(
this
.
orientation
===
Orientation
.
HORIZONTAL
?
this
.
_height
:
this
.
_width
);
const
child
=
new
SplitPane
(
instance
,
this
.
orientation
===
Orientation
.
HORIZONTAL
?
this
.
_height
:
this
.
_width
);
child
.
orientation
=
this
.
orientation
;
child
.
instance
=
instance
;
if
(
typeof
index
===
'
number
'
)
{
this
.
_children
.
splice
(
index
,
0
,
child
);
}
else
{
...
...
@@ -197,23 +196,21 @@ class SplitPane implements IView {
public
minimumSize
:
number
=
SPLIT_PANE_MIN_SIZE
;
public
maximumSize
:
number
=
Number
.
MAX_VALUE
;
public
instance
:
ITerminalInstance
;
public
orientation
:
Orientation
|
undefined
;
protected
_size
:
number
;
private
_onDidChange
:
Event
<
number
|
undefined
>
=
Event
.
None
;
public
get
onDidChange
():
Event
<
number
|
undefined
>
{
return
this
.
_onDidChange
;
}
readonly
element
:
HTMLElement
;
constructor
(
readonly
instance
:
ITerminalInstance
,
public
orthogonalSize
:
number
)
{
}
public
render
(
container
:
HTMLElement
):
void
{
if
(
!
container
)
{
return
;
}
this
.
instance
.
attachToElement
(
container
);
this
.
element
=
document
.
createElement
(
'
div
'
);
this
.
element
.
className
=
'
terminal-split-pane
'
;
this
.
instance
.
attachToElement
(
this
.
element
);
}
public
layout
(
size
:
number
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录