📄 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 + -