kcApp.h/cpp Further time line ctl integration

This commit is contained in:
kevin 2012-11-16 12:11:31 -08:00
parent 2a701ba707
commit 7a322b8b4c
2 changed files with 25 additions and 15 deletions

View File

@ -77,7 +77,8 @@ kcApp::kcApp(int w, int h, const char *l, int argc, char *argv[])
_adlH(cmAdlNullHandle),_aiH(cmAiNullHandle),
_statIdx(0),_pageList(NULL),_ctlList(NULL),_prH(cmPrNullHandle),_prefsFn(NULL),
_stopTimerFl(false),_jsH(cmJsonNullHandle),_newPageFl(true),_incrColW(0),_colW(0),_horzBordFl(false),_horzBord(0),
_closeCnt(0),_ssCnt(0),_ssArray(0),_ssPhase(0),_ssUpdateFl(false),_printqH(cmTsQueueNullHandle)
_closeCnt(0),_ssCnt(0),_ssArray(0),_ssPhase(0),_ssUpdateFl(false),_printqH(cmTsQueueNullHandle),
_tlCtl(NULL)
{
// install a callback to cleanup when the app window closes
// (the btn callbacks and _getApp() rely on a pointer to 'this' being found in kcApp.user_data())
@ -423,6 +424,7 @@ void kcApp::_clearCtlList(bool mstrFl)
if( mstrFl )
mstr_grp->clear();
_tlCtl = NULL;
}
@ -1222,6 +1224,11 @@ void kcApp::_createTmln( const cmDspUiHdr_t* m )
cp->u.tmln.tlctl = new tlCtl(&_ctx,this,NULL);
// currently we only support one time-line control because
// we have not yet implmenented a method of providing
// timer callbacks to a list of UI controls
assert( _tlCtl == NULL );
_tlCtl = cp->u.tmln.tlctl;
Fl_Widget* wdgt = cp->u.tmln.tlctl->initTimeLineCtlr(_menu,x,y,w,h);
@ -1239,15 +1246,10 @@ void kcApp::_setTmlnValue( ctl_t* cp, unsigned instVarId, const cmDspValue_t* vp
{
switch(i)
{
case kTmlnValArgIdx:
case kTmlnSelArgIdx:
//tp->value( cmDsvStrcz(vp));
break;
case kTmlnLblArgIdx:
{
const char* lbl = cmDsvStrcz(vp);
}
break;
case kTmlnFileArgIdx:
{
@ -1907,12 +1909,13 @@ void kcApp::_callback(void* data)
// to be diplayed in the console - all successive
// times the return value from finalizePgm() is
// ignored and the program is terminated.
/*
if( _closeCnt == 1 && cc==0)
{
deactivate(); // send a strong hint that a problem occurred
return;
}
*/
// When all windows are windows are closed then the app.
// will close - so hiding the application window
@ -1949,7 +1952,11 @@ bool kcApp::_status_timeout_cb()
_checkPrintQueue();
if( !_stopTimerFl )
{
_getEngMsg();
if( _tlCtl != NULL )
_tlCtl->onIdle();
}
if( _ssUpdateFl )
{
@ -2129,8 +2136,11 @@ void kcApp::_ctl_cb(ctl_t* cp)
break;
case kTmlnTypeId:
//instVarId = cp->u.text.varIdArray[ kTmlnValArgIdx ];
//cmDsvSetStrz(&value,(cmChar_t*)cp->u.tmln.text->value());
{
instVarId = cp->u.text.varIdArray[ kTmlnSelArgIdx ];
unsigned selMarkerId = cp->u.tmln.tlctl->timeLineSelectedMarkerId();
cmDsvSetUInt(&value, selMarkerId );
}
break;
default:

View File

@ -137,11 +137,10 @@ private:
kMetrLblArgIdx = 3,
kMetrVarCnt = 4,
kTmlnValArgIdx = 0,
kTmlnLblArgIdx = 1,
kTmlnFileArgIdx= 2,
kTmlnPathArgIdx= 3,
kTmlnVarCnt = 4
kTmlnFileArgIdx= 0,
kTmlnPathArgIdx= 1,
kTmlnSelArgIdx = 2,
kTmlnVarCnt = 3
};
@ -303,6 +302,7 @@ private:
int _ssPhase;
bool _ssUpdateFl;
cmTsQueueH_t _printqH; // thread-safe queue for controlling access to the output console from multiple threads
tlCtl* _tlCtl;
void resize(int x, int y, int w, int h);