Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
7dcac647
Commit
7dcac647
authored
Jul 03, 2016
by
Alexandr Kondratev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
highgui module: a bit readable onMouse flags mapping
parent
81c69ecd
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
10 deletions
+19
-10
window_gtk.cpp
modules/highgui/src/window_gtk.cpp
+19
-10
No files found.
modules/highgui/src/window_gtk.cpp
View file @
7dcac647
...
@@ -61,6 +61,13 @@
...
@@ -61,6 +61,13 @@
#include <GL/glu.h>
#include <GL/glu.h>
#endif
#endif
#ifndef BIT_ALLIN
#define BIT_ALLIN(x,y) ( ((x)&(y)) == (y) )
#endif
#ifndef BIT_MAP
#define BIT_MAP(x,y,z) ( ((x)&(y)) ? (z) : 0 )
#endif
// TODO Fix the initial window size when flags=0. Right now the initial window is by default
// TODO Fix the initial window size when flags=0. Right now the initial window is by default
// 320x240 size. A better default would be actual size of the image. Problem
// 320x240 size. A better default would be actual size of the image. Problem
// is determining desired window size with trackbars while still allowing resizing.
// is determining desired window size with trackbars while still allowing resizing.
...
@@ -1006,6 +1013,7 @@ CV_IMPL int cvNamedWindow( const char* name, int flags )
...
@@ -1006,6 +1013,7 @@ CV_IMPL int cvNamedWindow( const char* name, int flags )
CvWindow
*
window
;
CvWindow
*
window
;
int
len
;
int
len
;
int
b_nautosize
;
cvInitSystem
(
1
,(
char
**
)
&
name
);
cvInitSystem
(
1
,(
char
**
)
&
name
);
if
(
!
name
)
if
(
!
name
)
...
@@ -1087,11 +1095,11 @@ CV_IMPL int cvNamedWindow( const char* name, int flags )
...
@@ -1087,11 +1095,11 @@ CV_IMPL int cvNamedWindow( const char* name, int flags )
hg_windows
->
prev
=
window
;
hg_windows
->
prev
=
window
;
hg_windows
=
window
;
hg_windows
=
window
;
gtk_window_set_resizable
(
GTK_WINDOW
(
window
->
frame
),
(
flags
&
CV_WINDOW_AUTOSIZE
)
==
0
);
int
b_nautosize
=
((
flags
&
CV_WINDOW_AUTOSIZE
)
==
0
);
gtk_window_set_resizable
(
GTK_WINDOW
(
window
->
frame
),
b_nautosize
);
// allow window to be resized
// allow window to be resized
if
(
(
flags
&
CV_WINDOW_AUTOSIZE
)
==
0
){
if
(
b_nautosize
){
GdkGeometry
geometry
;
GdkGeometry
geometry
;
geometry
.
min_width
=
50
;
geometry
.
min_width
=
50
;
geometry
.
min_height
=
50
;
geometry
.
min_height
=
50
;
...
@@ -1819,7 +1827,7 @@ static gboolean icvOnKeyPress(GtkWidget* widget, GdkEventKey* event, gpointer us
...
@@ -1819,7 +1827,7 @@ static gboolean icvOnKeyPress(GtkWidget* widget, GdkEventKey* event, gpointer us
{
{
int
code
=
0
;
int
code
=
0
;
if
(
(
event
->
state
&
GDK_CONTROL_MASK
)
==
GDK_CONTROL_MASK
&&
(
event
->
keyval
==
GDK_s
||
event
->
keyval
==
GDK_S
))
if
(
BIT_ALLIN
(
event
->
state
,
GDK_CONTROL_MASK
)
&&
(
event
->
keyval
==
GDK_s
||
event
->
keyval
==
GDK_S
))
{
{
try
try
{
{
...
@@ -2000,12 +2008,13 @@ static gboolean icvOnMouse( GtkWidget *widget, GdkEvent *event, gpointer user_da
...
@@ -2000,12 +2008,13 @@ static gboolean icvOnMouse( GtkWidget *widget, GdkEvent *event, gpointer user_da
};
};
};
};
flags
=
flags
|
flags
=
flags
|
(
state
&
GDK_SHIFT_MASK
?
CV_EVENT_FLAG_SHIFTKEY
:
0
)
|
BIT_MAP
(
state
,
GDK_SHIFT_MASK
,
CV_EVENT_FLAG_SHIFTKEY
)
|
(
state
&
GDK_CONTROL_MASK
?
CV_EVENT_FLAG_CTRLKEY
:
0
)
|
BIT_MAP
(
state
,
GDK_CONTROL_MASK
,
CV_EVENT_FLAG_CTRLKEY
)
|
(
state
&
(
GDK_MOD1_MASK
|
GDK_MOD2_MASK
)
?
CV_EVENT_FLAG_ALTKEY
:
0
)
|
BIT_MAP
(
state
,
GDK_MOD1_MASK
,
CV_EVENT_FLAG_ALTKEY
)
|
(
state
&
GDK_BUTTON1_MASK
?
CV_EVENT_FLAG_LBUTTON
:
0
)
|
BIT_MAP
(
state
,
GDK_MOD2_MASK
,
CV_EVENT_FLAG_ALTKEY
)
|
(
state
&
GDK_BUTTON2_MASK
?
CV_EVENT_FLAG_MBUTTON
:
0
)
|
BIT_MAP
(
state
,
GDK_BUTTON1_MASK
,
CV_EVENT_FLAG_LBUTTON
)
|
(
state
&
GDK_BUTTON3_MASK
?
CV_EVENT_FLAG_RBUTTON
:
0
);
BIT_MAP
(
state
,
GDK_BUTTON2_MASK
,
CV_EVENT_FLAG_MBUTTON
)
|
BIT_MAP
(
state
,
GDK_BUTTON3_MASK
,
CV_EVENT_FLAG_RBUTTON
);
window
->
on_mouse
(
cv_event
,
pt
.
x
,
pt
.
y
,
flags
,
window
->
on_mouse_param
);
window
->
on_mouse
(
cv_event
,
pt
.
x
,
pt
.
y
,
flags
,
window
->
on_mouse_param
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment