Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
ee2f8d00
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ee2f8d00
编写于
2月 24, 2016
作者:
M
Maksim Shabunin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cocoa backend: added checks before accessing sliders dictionary
上级
177aef05
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
19 deletion
+28
-19
modules/highgui/src/window_cocoa.mm
modules/highgui/src/window_cocoa.mm
+28
-19
未找到文件。
modules/highgui/src/window_cocoa.mm
浏览文件 @
ee2f8d00
...
...
@@ -230,8 +230,10 @@ CV_IMPL void cvShowImage( const char* name, const CvArr* arr)
//Set new view size considering sliders (reserve height and min width)
NSRect
vrectNew
=
vrectOld
;
int
slider_height
=
0
;
for
(
NSString
*
key
in
[
window
sliders
])
{
slider_height
+=
[[[
window
sliders
]
valueForKey
:
key
]
frame
].
size
.
height
;
if
([
window
respondsToSelector
:
@selector
(
sliders
)])
{
for
(
NSString
*
key
in
[
window
sliders
])
{
slider_height
+=
[[[
window
sliders
]
valueForKey
:
key
]
frame
].
size
.
height
;
}
}
vrectNew
.
size
.
height
=
[[[
window
contentView
]
image
]
size
].
height
+
slider_height
;
vrectNew
.
size
.
width
=
std
::
max
<
int
>
([[[
window
contentView
]
image
]
size
].
width
,
MIN_SLIDER_WIDTH
);
...
...
@@ -331,9 +333,12 @@ CV_IMPL int cvCreateTrackbar2(const char* trackbar_name,
NSAutoreleasePool
*
localpool
=
[[
NSAutoreleasePool
alloc
]
init
];
int
res
=
cvCreateTrackbar
(
trackbar_name
,
window_name
,
val
,
count
,
NULL
);
if
(
res
)
{
CVSlider
*
slider
=
[[
cvGetWindow
(
window_name
)
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
[
slider
setCallback2
:
on_notify2
];
[
slider
setUserData
:
userdata
];
CVWindow
*
window
=
cvGetWindow
(
window_name
);
if
(
window
&&
[
window
respondsToSelector
:
@selector
(
sliders
)])
{
CVSlider
*
slider
=
[[
window
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
[
slider
setCallback2
:
on_notify2
];
[
slider
setUserData
:
userdata
];
}
}
[
localpool
drain
];
return
res
;
...
...
@@ -383,7 +388,7 @@ cvSetMouseCallback( const char* name, CvMouseCallback function, void* info)
localpool4
=
[[
NSAutoreleasePool
alloc
]
init
];
window
=
cvGetWindow
(
window_name
);
if
(
window
)
{
if
(
window
&&
[
window
respondsToSelector
:
@selector
(
sliders
)]
)
{
CVSlider
*
slider
=
[[
window
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
if
(
slider
)
{
pos
=
[[
slider
slider
]
intValue
];
...
...
@@ -414,7 +419,7 @@ CV_IMPL void cvSetTrackbarPos(const char* trackbar_name, const char* window_name
localpool5
=
[[
NSAutoreleasePool
alloc
]
init
];
window
=
cvGetWindow
(
window_name
);
if
(
window
)
{
if
(
window
&&
[
window
respondsToSelector
:
@selector
(
sliders
)]
)
{
slider
=
[[
window
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
if
(
slider
)
{
[[
slider
slider
]
setIntValue
:
pos
];
...
...
@@ -442,7 +447,7 @@ CV_IMPL void cvSetTrackbarMax(const char* trackbar_name, const char* window_name
localpool5
=
[[
NSAutoreleasePool
alloc
]
init
];
window
=
cvGetWindow
(
window_name
);
if
(
window
)
{
if
(
window
&&
[
window
respondsToSelector
:
@selector
(
sliders
)]
)
{
slider
=
[[
window
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
if
(
slider
)
{
if
(
maxval
>=
0
)
{
...
...
@@ -473,7 +478,7 @@ CV_IMPL void cvSetTrackbarMin(const char* trackbar_name, const char* window_name
localpool5
=
[[
NSAutoreleasePool
alloc
]
init
];
window
=
cvGetWindow
(
window_name
);
if
(
window
)
{
if
(
window
&&
[
window
respondsToSelector
:
@selector
(
sliders
)]
)
{
slider
=
[[
window
sliders
]
valueForKey
:[
NSString
stringWithFormat
:
@"%s"
,
trackbar_name
]];
if
(
slider
)
{
if
(
minval
>=
0
)
{
...
...
@@ -709,9 +714,11 @@ void cv::setWindowTitle(const String& winname, const String& title)
double
viewHeight
=
[
self
contentView
].
frame
.
size
.
height
;
double
viewWidth
=
[
self
contentView
].
frame
.
size
.
width
;
CVWindow
*
window
=
(
CVWindow
*
)[[
self
contentView
]
window
];
for
(
NSString
*
key
in
[
window
sliders
])
{
NSSlider
*
slider
=
[[
window
sliders
]
valueForKey
:
key
];
viewHeight
=
std
::
min
(
viewHeight
,
(
double
)([
slider
frame
].
origin
.
y
));
if
([
window
respondsToSelector
:
@selector
(
sliders
)])
{
for
(
NSString
*
key
in
[
window
sliders
])
{
NSSlider
*
slider
=
[[
window
sliders
]
valueForKey
:
key
];
viewHeight
=
std
::
min
(
viewHeight
,
(
double
)([
slider
frame
].
origin
.
y
));
}
}
viewHeight
-=
TOP_BORDER
;
mp
.
y
=
viewHeight
-
mp
.
y
;
...
...
@@ -929,13 +936,15 @@ void cv::setWindowTitle(const String& winname, const String& title)
int
height
=
size
.
height
;
CVWindow
*
cvwindow
=
(
CVWindow
*
)[
self
window
];
for
(
NSString
*
key
in
[
cvwindow
sliders
])
{
NSSlider
*
slider
=
[[
cvwindow
sliders
]
valueForKey
:
key
];
NSRect
r
=
[
slider
frame
];
r
.
origin
.
y
=
height
-
r
.
size
.
height
;
r
.
size
.
width
=
[[
cvwindow
contentView
]
frame
].
size
.
width
;
[
slider
setFrame
:
r
];
height
-=
r
.
size
.
height
;
if
([
cvwindow
respondsToSelector
:
@selector
(
sliders
)])
{
for
(
NSString
*
key
in
[
cvwindow
sliders
])
{
NSSlider
*
slider
=
[[
cvwindow
sliders
]
valueForKey
:
key
];
NSRect
r
=
[
slider
frame
];
r
.
origin
.
y
=
height
-
r
.
size
.
height
;
r
.
size
.
width
=
[[
cvwindow
contentView
]
frame
].
size
.
width
;
[
slider
setFrame
:
r
];
height
-=
r
.
size
.
height
;
}
}
[
localpool
drain
];
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录