📄 dialogs.cpp
字号:
// snprintf( title, 100, "%d", camera);
cvvInitSystem(0, 0);
/* Creating main dialog window */
vf->dialog = XtVaAppCreateShell( title, "video", topLevelShellWidgetClass,
XtDisplay( /*(void*)*/cvvTopLevelWidget ),
XtNminWidth, 10, XtNminHeight, 10,
XtNinput, 1, 0 );
/* Creating main paned window... It will parent for all smaller elements */
vf->paned = XtVaCreateManagedWidget( "CvVisual_paned", panedWidgetClass, vf->dialog,
0 );
/* Resolution elements */
vf->label_res = XtVaCreateManagedWidget( "resolution", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "camera resolution",
XtNjustify, XtJustifyCenter, 0 );
vf->paned_res = XtVaCreateManagedWidget( "resolution_res", panedWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal,
0 );
sprintf( title, "%dx%d", vf->descr.minwidth, vf->descr.minheight );
vf->res_min = XtVaCreateManagedWidget( "res min", toggleWidgetClass, vf->paned_res,
XtNlabel, title,
XtNshowGrip, False,
XtNradioData, &select_res,
0 );
XtAddCallback( vf->res_min, "callback", (XtCallbackProc)on_min, vf );
vf->min_w = vf->descr.minwidth;
vf->min_h = vf->descr.minheight;
vf->res_middle = XtVaCreateManagedWidget( "res middle", toggleWidgetClass, vf->paned_res,
XtNlabel, "320x240",
XtNshowGrip, False,
XtNradioData, &select_res,
XtNradioGroup, vf->res_min,
0 );
XtAddCallback( vf->res_middle, "callback", (XtCallbackProc)on_mid, vf );
vf->mid_w = 320;
vf->mid_h = 240;
sprintf( title, "%dx%d", vf->descr.maxwidth, vf->descr.maxheight );
vf->res_max = XtVaCreateManagedWidget( "res max", toggleWidgetClass, vf->paned_res,
XtNlabel, title,
XtNshowGrip, False,
XtNradioData, &select_res,
XtNradioGroup, vf->res_min,
0 );
XtAddCallback( vf->res_max, "callback", (XtCallbackProc)on_max, vf );
vf->max_w = vf->descr.maxwidth;
vf->max_h = vf->descr.maxheight;
/* Video format elements */
vf->label_format = XtVaCreateManagedWidget( "format", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "data format",
XtNjustify, XtJustifyCenter, 0 );
vf->paned_format = XtVaCreateManagedWidget( "format", panedWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal,
0 );
vf->format_24 = XtVaCreateManagedWidget( "bpp24", toggleWidgetClass, vf->paned_format,
XtNlabel, "RGB24",
XtNshowGrip, False,
XtNradioData, &select_format,
0 );
XtAddCallback( vf->format_24, "callback", (XtCallbackProc)on_24, vf );
vf->format_32 = XtVaCreateManagedWidget( "bpp32", toggleWidgetClass, vf->paned_format,
XtNlabel, "RGB32",
XtNshowGrip, False,
XtNradioData, &select_format,
XtNradioGroup, vf->format_24,
0 );
XtAddCallback( vf->format_32, "callback", (XtCallbackProc)on_32, vf );
vf->format_yuv420p = XtVaCreateManagedWidget( "yuv420p", toggleWidgetClass, vf->paned_format,
XtNlabel, "YUV420P",
XtNshowGrip, False,
XtNradioData, &select_format,
XtNradioGroup, vf->format_24,
0 );
XtAddCallback( vf->format_yuv420p, "callback", (XtCallbackProc)on_yuv420p, vf );
/* Brightness, contrast, color & hue elements */
/* brightness */
vf->label_brightness = XtVaCreateManagedWidget( "brigthness", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "brigthness",
XtNjustify, XtJustifyCenter, 0 );
vf->brightness_w = XtVaCreateManagedWidget( "brigthness", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNjustify, XtJustifyCenter, 0 );
vf->br.w = vf->brightness_w;
vf->br_w = XtVaCreateManagedWidget( "br", scrollbarWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal, 0 );
XtAddCallback( vf->br_w, "jumpProc", (XtCallbackProc)on_track, &vf->br );
/* contrast */
vf->label_contrast = XtVaCreateManagedWidget( "contrast", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "contrast",
XtNjustify, XtJustifyCenter, 0 );
vf->contrast_w = XtVaCreateManagedWidget( "brigthness", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNjustify, XtJustifyCenter, 0 );
vf->con.w = vf->contrast_w;
vf->con_w = XtVaCreateManagedWidget( "con", scrollbarWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal, 0 );
XtAddCallback( vf->con_w, "jumpProc", (XtCallbackProc)on_track, &vf->con );
/* colour */
vf->label_color = XtVaCreateManagedWidget( "color", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "color",
XtNjustify, XtJustifyCenter, 0 );
vf->color_w = XtVaCreateManagedWidget( "brigthness", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNjustify, XtJustifyCenter, 0 );
vf->col.w = vf->color_w;
vf->col_w = XtVaCreateManagedWidget( "col", scrollbarWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal, 0 );
XtAddCallback( vf->col_w, "jumpProc", (XtCallbackProc)on_track, &vf->col );
/* hue */
vf->label_hue = XtVaCreateManagedWidget( "hue", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, "hue",
XtNjustify, XtJustifyCenter, 0 );
vf->hue_w = XtVaCreateManagedWidget( "brigthness", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNjustify, XtJustifyCenter, 0 );
vf->hue.w = vf->hue_w;
vf->h_w = XtVaCreateManagedWidget( "h", scrollbarWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal, 0 );
XtAddCallback( vf->h_w, "jumpProc", (XtCallbackProc)on_track, &vf->hue );
updatevalues(vf);
/* Buttons */
vf->buttons = XtVaCreateManagedWidget( "buttons", panedWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal,
0 );
vf->b_ok = XtVaCreateManagedWidget( "b_ok", toggleWidgetClass, vf->buttons,
XtNlabel, "Ok",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_ok, XtNcallback, (XtCallbackProc)on_ok, (void*)vf );
vf->b_apply = XtVaCreateManagedWidget( "b_apply", toggleWidgetClass, vf->buttons,
XtNlabel, "Apply",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_apply, XtNcallback, (XtCallbackProc)on_apply, (void*)vf );
vf->b_cancel = XtVaCreateManagedWidget( "b_cancel", toggleWidgetClass, vf->buttons,
XtNlabel, "Cancel",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_cancel, XtNcallback, (XtCallbackProc)on_cancel, (void*)vf );
vf->n = camera;
XtRealizeWidget( vf->dialog );
{
/* fixating window size */
int width = 10;
int height = 10;
XtVaGetValues( vf->dialog, XtNwidth, &width, XtNheight, &height, 0 );
XtVaSetValues( vf->dialog, XtNminWidth, width, XtNminHeight, height,
XtNmaxWidth, width, XtNmaxHeight, height, 0 );
}
}
////////////////////////////////////////////////////////////////////////////////
static void on_enable( Widget w, CameraWidget* data )
{
int status = 1;
XtVaGetValues( w, XtNstate, &status, 0 );
data->enable = status;
}
static void on_render( Widget w, CameraWidget* data )
{
int status = 1;
XtVaGetValues( w, XtNstate, &status, 0 );
data->render = status;
}
static void on_cam_apply( Widget w, CameraWidget* data )
{
cvcamSetProperty( data->n, "enable", &data->enable );
cvcamSetProperty( data->n, "render", &data->render );
XtVaSetValues( w, XtNstate, False, 0 );
}
static void on_cam_cancel( Widget w, CameraWidget* data )
{
XtDestroyWidget( data->dialog );
free( data );
}
static void on_cam_ok( Widget w, CameraWidget* data )
{
on_cam_apply( w, data );
on_cam_cancel( w, data );
}
void icvVideoCameraPPDialog(int camera)
{
int res;
char title[100];
CameraWidget* vf = (CameraWidget*)malloc( sizeof(*vf) );
cvcamGetProperty(camera, "description", &vf->descr);
snprintf( title, 100, "%s, %s (%s): Camera options", vf->descr.device, vf->descr.DeviceDescription, vf->descr.ChannelDescription );
cvvInitSystem(0, 0);
/* Creating main dialog window */
vf->dialog = XtVaAppCreateShell( title, "camera", topLevelShellWidgetClass,
XtDisplay( cvvTopLevelWidget ),
XtNminWidth, 10, XtNminHeight, 10,
XtNinput, 1, 0 );
/* Creating main paned window... It will parent for all smaller elements */
vf->paned = XtVaCreateManagedWidget( "CvCamera_paned", panedWidgetClass, vf->dialog,
0 );
/* Resolution elements */
sprintf( title, "%s on %s", vf->descr.DeviceDescription, vf->descr.device );
vf->label = XtVaCreateManagedWidget( "desriprion", labelWidgetClass, vf->paned,
XtNshowGrip, False,
XtNlabel, title,
XtNjustify, XtJustifyCenter, 0 );
cvcamGetProperty(camera, "enable", &res);
vf->enable_w = XtVaCreateManagedWidget( "enable", toggleWidgetClass, vf->paned,
XtNlabel, "enable",
XtNshowGrip, False,
XtNradioData, &select_res,
XtNstate, res,
0 );
XtAddCallback( vf->enable_w, "callback", (XtCallbackProc)on_enable, vf );
cvcamGetProperty(camera, "render", &res);
vf->render_w = XtVaCreateManagedWidget( "render", toggleWidgetClass, vf->paned,
XtNlabel, "render",
XtNshowGrip, False,
XtNradioData, &select_res,
XtNstate, res,
0 );
XtAddCallback( vf->render_w, "callback", (XtCallbackProc)on_render, vf );
/* Buttons */
vf->buttons = XtVaCreateManagedWidget( "buttons", panedWidgetClass, vf->paned,
XtNshowGrip, False,
XtNorientation, XtorientHorizontal,
0 );
vf->b_ok = XtVaCreateManagedWidget( "b_ok", toggleWidgetClass, vf->buttons,
XtNlabel, "Ok",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_ok, XtNcallback, (XtCallbackProc)on_cam_ok, (void*)vf );
vf->b_apply = XtVaCreateManagedWidget( "b_apply", toggleWidgetClass, vf->buttons,
XtNlabel, "Apply",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_apply, XtNcallback, (XtCallbackProc)on_cam_apply, (void*)vf );
vf->b_cancel = XtVaCreateManagedWidget( "b_cancel", toggleWidgetClass, vf->buttons,
XtNlabel, "Cancel",
XtNshowGrip, False,
XtNstate, False,
0 );
XtAddCallback( vf->b_cancel, XtNcallback, (XtCallbackProc)on_cam_cancel, (void*)vf );
XtRealizeWidget( vf->dialog );
vf->n = camera;
{
/* fixating window size */
int width = 10;
int height = 10;
XtVaGetValues( vf->dialog, XtNwidth, &width, XtNheight, &height, 0 );
XtVaSetValues( vf->dialog, XtNminWidth, width, XtNminHeight, height,
XtNmaxWidth, width, XtNmaxHeight, height, 0 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -