-CvFont cvFont_Qt(const char* nameFont, int pointSize,CvScalar color,int weight,int style, int spacing)
+CV_IMPL CvFont cvFont_Qt(const char* nameFont, int pointSize,CvScalar color,int weight,int style, int spacing)
{
/*
-void cvAddText( CvArr* img, const char* text, CvPoint org, CvFont* font)
+CV_IMPL void cvAddText( CvArr* img, const char* text, CvPoint org, CvFont* font)
{
QMetaObject::invokeMethod(&guiMainThread,
"putText",
return result;
}
-void cvDisplayOverlay(const char* name, const char* text, int delayms)
+CV_IMPL void cvDisplayOverlay(const char* name, const char* text, int delayms)
{
QMetaObject::invokeMethod(&guiMainThread,
}
-void cvSaveWindowParameters(const char* name)
+CV_IMPL void cvSaveWindowParameters(const char* name)
{
QMetaObject::invokeMethod(&guiMainThread,
"saveWindowParameters",
Q_ARG(QString, QString(name)));
}
-void cvLoadWindowParameters(const char* name)
+CV_IMPL void cvLoadWindowParameters(const char* name)
{
QMetaObject::invokeMethod(&guiMainThread,
"loadWindowParameters",
Q_ARG(QString, QString(name)));
}
-void cvDisplayStatusBar(const char* name, const char* text, int delayms)
+CV_IMPL void cvDisplayStatusBar(const char* name, const char* text, int delayms)
{
QMetaObject::invokeMethod(&guiMainThread,
}
-int cvInitSystem( int, char** )
+CV_IMPL int cvInitSystem( int, char** )
{
return 0;
}
-int cvWaitKey( int arg )
+CV_IMPL int cvWaitKey( int arg )
{
int result = -1;
//Yannick Verdie
//This function is experimental and some functions (such as cvSet/getWindowProperty will not work)
//We recommend not using this function for now
-int cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[])
+CV_IMPL int cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[])
{
multiThreads = true;
QFuture<int> future = QtConcurrent::run(pt2Func,argc,argv);
return guiMainThread.start();
}
-void cvStopLoop()
+CV_IMPL void cvStopLoop()
{
qApp->exit();
}
-CvWindow* icvFindWindowByName( const char* arg )
+CV_IMPL CvWindow* icvFindWindowByName( const char* arg )
{
QPointer<CvWindow> window = NULL;
QString nameQt = QString(name_trackbar);
QPointer<CvTrackbar> t;
+ int start_index;
+ int stop_index;
+ QPointer<QLayout> myLayout;
+
+ if (w->param_gui_mode == CV_GUI_NORMAL)
+ {
+ myLayout = w->myLayout;
+
+ start_index = 1;
+ if (w->myToolBar)
+ start_index = 2;
+ //Warning ---- , asume the location 0 is toolbar, 1 is myview and max-1 the status bar
+ //done three times in the code, in loadtrackbars, savetrackbar and in findtrackbar
+
+ stop_index = myLayout->layout()->count()-1;
+ }
+
+ if (w->param_gui_mode == CV_GUI_EXPANDED)
+ {
+ myLayout = w->getWinProp()->myLayout;
+ start_index = 0;
+ stop_index = myLayout->layout()->count();
+ }
+
+ for (int i = start_index; i < stop_index; ++i)
+ {
+ t = (CvTrackbar*) myLayout->layout()->itemAt(i);
+ if (t->trackbar_name==nameQt)
+ {
+ result = t;
+ break;
+ }
+ }
+ return result;
+
+
+}
+
+/*
+CvTrackbar* icvFindButtonbarByName( const char* name_Buttonbar, const char* name_window )
+{
+
+ QPointer<CvButtonbar> result = NULL;
+
+ QPointer<CvWindow> w = icvFindWindowByName( name_window );
+
+ if( !w )
+ CV_Error( CV_StsNullPtr, "NULL window handler" );
+
+ QString nameQt = QString(name_Buttonbar);
+ QPointer<CvButtonbar> t;
+
int start_index = 1;
if (w->myToolBar)
start_index = 2;
}
return result;
-}
+}*/
int icvInitSystem()
{
return 0;
}
-int cvNamedWindow( const char* name, int flags )
+CV_IMPL int cvNamedWindow( const char* name, int flags )
{
if (multiThreads)
return 1;//Dummy value
}
-void cvDestroyWindow( const char* name )
+CV_IMPL void cvDestroyWindow( const char* name )
{
-
QMetaObject::invokeMethod(&guiMainThread,
"destroyWindow",
//Qt::BlockingQueuedConnection,
);
}
-
-void cvDestroyAllWindows(void)
+CV_IMPL void cvDestroyAllWindows(void)
{
QMetaObject::invokeMethod(&guiMainThread,
}
-void* cvGetWindowHandle( const char* name )
+CV_IMPL void* cvGetWindowHandle( const char* name )
{
if( !name )
CV_Error( CV_StsNullPtr, "NULL name string" );
return (void*) icvFindWindowByName( name );
}
-const char* cvGetWindowName( void* window_handle )
+CV_IMPL const char* cvGetWindowName( void* window_handle )
{
if( !window_handle )
return ((CvWindow*)window_handle)->windowTitle().toLatin1().data();
}
-void cvMoveWindow( const char* name, int x, int y )
+CV_IMPL void cvMoveWindow( const char* name, int x, int y )
{
}
-void cvResizeWindow(const char* name, int width, int height )
+CV_IMPL void cvResizeWindow(const char* name, int width, int height )
{
QMetaObject::invokeMethod(&guiMainThread,
}
-int cvCreateTrackbar2( const char* trackbar_name, const char* window_name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata )
+//TODO: implement the real one, not a wrapper
+CV_IMPL int cvCreateTrackbar2( const char* trackbar_name, const char* window_name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata )
{
- //TODO: implement the real one, not a wrapper
return cvCreateTrackbar( trackbar_name, window_name, val, count, (CvTrackbarCallback)on_notify );
}
-int cvStartWindowThread()
+CV_IMPL int cvStartWindowThread()
{
return 0;
}
-int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change)
+CV_IMPL int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change)
{
if (multiThreads)
return 1;//dummy value
}
-void cvCreateOpenGLCallback( const char* window_name, CvOpenGLCallback callbackOpenGL, void* userdata)
+CV_IMPL void cvCreateOpenGLCallback( const char* window_name, CvOpenGLCallback callbackOpenGL, void* userdata)
{
QMetaObject::invokeMethod(&guiMainThread,
"setOpenGLCallback",
);
}
-int cvGetTrackbarPos( const char* trackbar_name, const char* window_name )
+CV_IMPL int cvGetTrackbarPos( const char* trackbar_name, const char* window_name )
{
int result = -1;
return result;
}
-void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos )
+CV_IMPL void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos )
{
QPointer<CvTrackbar> t = icvFindTrackbarByName( trackbar_name, window_name );
}
/* assign callback for mouse events */
-void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse,void* param )
+CV_IMPL void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse,void* param )
{
QPointer<CvWindow> w = icvFindWindowByName( window_name );
}
-void cvShowImage( const char* name, const CvArr* arr )
+CV_IMPL void cvShowImage( const char* name, const CvArr* arr )
{
QMetaObject::invokeMethod(&guiMainThread,
return;
if (w->isFullScreen() && flags == CV_WINDOW_NORMAL)
+ {
+ w->showTools();
w->showNormal();
+ return;
+ }
if (!w->isFullScreen() && flags == CV_WINDOW_FULLSCREEN)
+ {
+ w->hideTools();
w->showFullScreen();
+ return;
+ }
}
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
if (w && delayms > 0)
- w->displayStatusBar(text,delayms);
+ if (w->myStatusBar)//if statusbar was created
+ w->displayStatusBar(text,delayms);
}
void GuiReceiver::showImage(QString name, void* arr)
+//here CvButtonbar class
+/*
+CvButtonbar::CvButtonbar()
+{
+
+}
+*/
+
+
//here CvWinProperties class
{
move(mypos);
event->accept();
- }else{
+ }
+ else{
event->ignore();
}
}
void CvWinProperties::hideEvent ( QHideEvent * event )
{
QSettings settings("OpenCV2", this->windowTitle());
- settings.setValue("pos", pos());
+ settings.setValue("pos", pos());//there is an offset of 6 pixels (so the window's position is wrong -- why ?)
event->accept();
}
{
//clear the setting pos
QSettings settings("OpenCV2", this->windowTitle());
- settings.clear();
+ settings.remove("pos");
+
QLayoutItem *child;
if (myLayout)
//the first bit is for normal or autoresize
//CV_WINDOW_NORMAL = 0x00000000 and CV_WINDOW_AUTOSIZE = 0x00000001
- //the secont bit is for the gui mode (normal or EXPANDED)
+ //the secont bit is for the gui mode (normal or expanded)
//CV_GUI_EXPANDED = 0x00000000 and CV_GUI_NORMAL = 0x00000010
param_flags = arg2 & 0x0000000F;
param_gui_mode = arg2 & 0x000000F0;
delete vect_QShortcuts[i];
}
+CvWinProperties* CvWindow::getWinProp()
+{
+ return parameters_window;
+}
+
+void CvWindow::hideTools()
+{
+ if (myToolBar)
+ myToolBar->hide();
+
+ if (myStatusBar)
+ myStatusBar->hide();
+
+ if (parameters_window)
+ parameters_window->hide();
+}
+
+void CvWindow::showTools()
+{
+ if (myToolBar)
+ myToolBar->show();
+
+ if (myStatusBar)
+ myStatusBar->show();
+
+ //if (parameters_window)
+ // parameters_window->show();
+}
+
void CvWindow::createParameterWindow()
{
QString name_paraWindow=param_name+" window parameters";
}
}
-
void ViewPort::setRatio(int flags)
{
param_keepRatio = flags;
//if the toolbar is displayed, avoid drawing myview on top of it
if (centralWidget->myToolBar)
- newSize +=QSize(0,centralWidget->myToolBar->height());
+ if(!centralWidget->myToolBar->isHidden())
+ newSize +=QSize(0,centralWidget->myToolBar->height());
move(newSize.width(),newSize.height());
}