// ZTime - ctor ZTime::ZTime( ZSubtask *pZSubtask, CWnd *pWndParent, ZMapAct *pzmaComposite, zVIEW vDialog, zSHORT nOffsetX, zSHORT nOffsetY, zKZWDLGXO_Ctrl_DEF *pCtrlDef ) : CWnd( ), ZMapAct( pZSubtask, // base class ctor pzmaComposite, pWndParent, this, vDialog, nOffsetX, nOffsetY, pCtrlDef, "Time" ) { #ifdef DEBUG_ALL TraceLineI( "In ctor for ZTime", (zLONG) this ); #endif // Localize settings from XWD. CreateZ( ); }
///////////////////////////////////////////////////////////////////////////// // // CONSTRUCTOR: Tab/Notebook control // ///////////////////////////////////////////////////////////////////////////// // ctor TZNoteBook::TZNoteBook( TZPainterWindow *pPainterWindow, TZPainterCtrl *pCtrlParent, CWnd *pWndParent, CRect& rect, zVIEW vCtrl, zLONG lType, zBOOL bPlaceHolder, zLONG lZKey, zLONG lTabStopNbr, zLONG lCtrlID, zPCHAR pchTag, zPCHAR pchText ) : CTabCtrl( ), TZPainterCtrl( pPainterWindow, pCtrlParent, pWndParent, rect, vCtrl, this, pchTag, pchText, lType, bPlaceHolder, lZKey, lTabStopNbr, lCtrlID ) { #ifdef DEBUG_ALL TraceLineS( "TZNoteBook::ctor ", m_csTag ); #endif zLONG lTabsPerRow = 0; m_bDeletable = TRUE; // mark it as deletable m_bInitialized = FALSE; m_pZNotePage = 0; m_nPageCnt = 0; m_nTabNbrMax = 1; Attr.Style = WS_CHILD | WS_VISIBLE | WS_TABSTOP; if ( vCtrl ) { OrderEntityForView( vCtrl, szlCtrlCtrl, "Type A" ); zCHAR szBlob[ 5 * sizeof( zLONG ) ]; zULONG ulLth = zsizeof( szBlob ); GetBlobFromAttribute( szBlob, &ulLth, vCtrl, "Control", "CtrlBOI" ); // TraceLineI( "TZNoteBook ctor Blob Lth = ", ulLth ); if ( ulLth >= 3 * sizeof( zLONG ) ) { lTabsPerRow = *((zPLONG) (szBlob + sizeof( zLONG ) * 2)); } } // if ( lTabsPerRow ) // Attr.Style |= TCS_MULTILINE, CreateZ( ); ShowWindow( SW_SHOW ); #if 0 CRect r; r.top = GetClientTop( ); r.left = GetClientLeft( ); r.right = r.left + GetClientWidth( ); r.bottom = r.top + GetClientHeight( ); TraceRect( "TZNoteBook ctor Client Rect:", r ); #endif }
// ZTimer - ctor ZTimer::ZTimer( ZSubtask *pZSubtask, CWnd *pWndParent, ZMapAct *pzmaComposite, zVIEW vDialog, zSHORT nOffsetX, zSHORT nOffsetY, zKZWDLGXO_Ctrl_DEF *pCtrlDef ) : CStatic( ), ZMapAct( pZSubtask, // base class ctor pzmaComposite, pWndParent, this, vDialog, nOffsetX, nOffsetY, pCtrlDef, "Timer" ) { #ifdef DEBUG_ALL TraceLineI( "In ctor for ZTimer", (zLONG) this ); #endif m_ulMapActFlags &= ~zMAPACT_FOCUS_ENABLED; // Make it a hidden window. Attr.Style &= ~(WS_TABSTOP | WS_VISIBLE ); Attr.Style |= WS_DISABLED; Attr.X = 0; Attr.Y = 0; Attr.W = 0; Attr.H = 0; // Localize settings from XWD. m_lInterval = pCtrlDef->StyleX; m_bEnabled = TRUE; m_pThread = 0; // TraceLineI( "Timer interval --> ", m_lInterval ); // TraceLineS( "string interval -> ", pCtrlDef->Text ); // TraceLineI( "Timer enabled ---> ", m_bEnabled ); #ifdef zREMOTE_SERVER zCHAR szInterval[ 32 ]; _ltoa_s( m_lInterval, szInterval ); SetRemoteZCtrlAttribute( this, "Timer", "Interval", szInterval ); #endif CreateZ( ); }
// ZMLE - ctor ZMLE::ZMLE( ZSubtask *pZSubtask, CWnd *pWndParent, ZMapAct *pzmaComposite, zVIEW vDialog, zSHORT nOffsetX, zSHORT nOffsetY, zKZWDLGXO_Ctrl_DEF *pCtrlDef ) : CEdit( ), ZMapAct( pZSubtask, // base class ctor pzmaComposite, pWndParent, this, vDialog, nOffsetX, nOffsetY, pCtrlDef, "MLE" ) { #ifdef DEBUG_ALL TraceLineI( "In ctor for ZMLE", (zLONG) this ); if ( m_pzsVName ) { TraceLineS( "ZMLE ViewName", *m_pzsVName ); TraceLineS( "ZMLE Entity", *m_pzsEName ); TraceLineS( "ZMLE Attribute", *m_pzsAName ); } #endif m_ulLth = 0; if ( m_ulMapActFlags & zMAPACT_USE_SUBTASK_BRUSH ) { mDeleteInit( m_pBrush ); m_clrBk = 0; } if ( pCtrlDef->Subtype & zCONTROL_SIZEABLEBORDER ) Attr.Style |= WS_THICKFRAME; else if ( (pCtrlDef->Subtype & zCONTROL_BORDEROFF) ) Attr.Style &= ~WS_BORDER; else Attr.Style |= WS_BORDER; if ( pCtrlDef->Subtype & zCONTROL_NOTABSTOP ) Attr.Style &= ~WS_TABSTOP; else Attr.Style |= WS_TABSTOP; Attr.Style &= ~(WS_HSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL); Attr.Style |= ES_AUTOVSCROLL | WS_VSCROLL; Attr.Style |= ES_MULTILINE | ES_WANTRETURN; if ( pCtrlDef->Subtype & zEDITBOX_LOWERCASE ) Attr.Style |= ES_LOWERCASE; if ( pCtrlDef->Subtype & zEDITBOX_UPPERCASE ) Attr.Style |= ES_UPPERCASE; #ifndef zREMOTE_SERVER if ( pzmaComposite == 0 || (pzmaComposite->m_ulMapActFlag2 & zMAPACT_CREATE_CHILDREN) ) #endif { CreateZ( ); } }
// ZCheckBox - ctor ZCheckBox::ZCheckBox( ZSubtask *pZSubtask, CWnd *pWndParent, ZMapAct *pzmaComposite, zVIEW vDialog, zSHORT nOffsetX, zSHORT nOffsetY, zKZWDLGXO_Ctrl_DEF *pCtrlDef ) : CButton( ), ZMapAct( pZSubtask, // base class ctor pzmaComposite, pWndParent, this, vDialog, nOffsetX, nOffsetY, pCtrlDef, "CheckBox" ) { #ifdef DEBUG_ALL TraceLineI( "In ctor for CheckBox", (zLONG) this ); #endif if ( pCtrlDef->Subtype & zCONTROL_SIZEABLEBORDER ) Attr.Style |= WS_THICKFRAME; else if ( !(pCtrlDef->Subtype & zCONTROL_BORDEROFF) ) Attr.Style |= WS_BORDER; if ( pCtrlDef->Subtype & zCONTROL_NOTABSTOP ) Attr.Style &= ~WS_TABSTOP; else Attr.Style |= WS_TABSTOP; m_pzsValueOn = 0; m_pzsValueOff = 0; zPCHAR pch = (zPCHAR) pCtrlDef->CtrlBOI; if ( pch == 0 ) // there is no CtrlBOI return; zPCHAR pchAmpersand = zstrchr( *m_pzsText, '&' ); while ( pchAmpersand ) { pchAmpersand++; if ( *pchAmpersand == '&' ) pchAmpersand++; else { m_chQuickKey = toupper( *pchAmpersand ); break; } pchAmpersand = zstrchr( pchAmpersand, '&' ); } m_pzsValueOn = new CString( pch ); pch += zstrlen( pch ) + 1; m_pzsValueOff = new CString( pch ); BOX_SIZE = 13; // ASSERT( BOX_SIZE > 1 ); ASSERT( BOX_SIZE < 30 ); if ( pCtrlDef->Subtype & zCHECKBOX_XCHECK ) m_resID = IDB_CB_XCHECK; else if ( pCtrlDef->Subtype & zCHECKBOX_LED ) { m_resID = IDB_CB_LED; BOX_SIZE = 11; } else m_resID = IDB_CB_CHECKMARK; // load state bitmaps m_bmpSrc = LoadBitmap( AfxGetResourceHandle( ), MAKEINTRESOURCE( m_resID ) ); ASSERT( m_bmpSrc ); // bitmap resource ID valid? m_bLeftText = FALSE; m_bDisabled = FALSE; m_bChecked = FALSE; m_lState = BOX_OFF; m_bInRect = FALSE; m_bSpaceDown = FALSE; m_bMouseDown = FALSE; m_brush = 0; m_clr = CLR_INVALID; m_bHasFocus = FALSE; m_bPrepareBitmaps = TRUE; for ( int k = 0; k < 6; k++ ) m_bitmaps[ k ] = 0; #ifndef zREMOTE_SERVER if ( pzmaComposite == 0 || (pzmaComposite->m_ulMapActFlag2 & zMAPACT_CREATE_CHILDREN) ) #endif { CreateZ( ); } }
///////////////////////////////////////////////////////////////////////////// // // CONSTRUCTOR: Tab sub-control (to group controls at the tab level) // ///////////////////////////////////////////////////////////////////////////// // ctor TZNotePage::TZNotePage( TZPainterWindow *pPainterWindow, TZPainterCtrl *pCtrlParent, CWnd *pWndParent, CRect& rect, zVIEW vCtrl, zLONG lType, zBOOL bPlaceHolder, zLONG lZKey, zLONG lTabStopNbr, zLONG lCtrlID, zPCHAR pchTag, zPCHAR pchText ) : CWnd( ), TZPainterCtrl( pPainterWindow, pCtrlParent, pWndParent, rect, vCtrl, this, pchTag, pchText, lType, bPlaceHolder, lZKey, lTabStopNbr, lCtrlID ) { #ifdef DEBUG_ALL TraceLineS( "TZNotePage::ctor ", m_csTag ); #endif m_pNext = 0; m_uVisible = 0x0100; m_lSubtype = 0; m_pZNoteBook = DYNAMIC_DOWNCAST( TZNoteBook, pWndParent ); if ( m_pZNoteBook == 0 ) return; zPCHAR pch; zLONG lTabNbr; zLONG lLth; if ( vCtrl ) { GetAddrForAttribute( &pch, vCtrl, szlControl, szlText ); lLth = zstrlen( pch ) + 1; m_pchCaption = new char[ lLth ]; strcpy_s( m_pchCaption, lLth, pch ); GetIntegerFromAttribute( &lTabNbr, vCtrl, szlControl, szlType ); if ( lTabNbr == 0 ) { zVIEW vTemp; m_pZNoteBook->m_nTabNbrMax++; CreateViewFromViewForTask( &vTemp, vCtrl, pPainterWindow->m_vDialog ); ResetViewFromSubobject( vTemp ); while ( SetCursorFirstEntityByInteger( vTemp, szlCtrlCtrl, szlType, m_pZNoteBook->m_nTabNbrMax, 0 ) == zCURSOR_SET ) { m_pZNoteBook->m_nTabNbrMax++; } SetAttributeFromInteger( vCtrl, szlControl, szlType, m_pZNoteBook->m_nTabNbrMax ); m_lSubtype = m_pZNoteBook->m_nTabNbrMax; DropView( vTemp ); } else { if ( lTabNbr > m_pZNoteBook->m_nTabNbrMax ) m_pZNoteBook->m_nTabNbrMax = (zSHORT) lTabNbr; m_lSubtype = m_pZNoteBook->m_nTabNbrMax; } if ( MiGetUpdateForView( vCtrl ) > 0 ) { SetAttributeFromAttribute( vCtrl, szlControl, szlSyncKey, vCtrl, szlControl, szlType ); } } else { m_pZNoteBook->m_nTabNbrMax++; m_lSubtype = m_pZNoteBook->m_nTabNbrMax; lTabNbr = m_pZNoteBook->m_nTabNbrMax; lLth = zstrlen( pchText ) + 1; m_pchCaption = new char[ lLth ]; strcpy_s( m_pchCaption, lLth, pchText ); } // TraceRect( "TabCtl rect ", rect ); // TraceLineI( " Attr.X ", Attr.X ); // TraceLineI( " Attr.Y ", Attr.Y ); // TraceLineI( " Attr.W ", Attr.W ); // TraceLineI( " Attr.H ", Attr.H ); // Build sub-controls on demand (only when visible or selectable). m_bBuildOnDemand = TRUE; if ( m_pZNoteBook->m_pZNotePage ) { m_nTabIdx = 1; TZNotePage *pCurrNotePage = m_pZNoteBook->m_pZNotePage; while ( pCurrNotePage->m_pNext ) { m_nTabIdx++; pCurrNotePage = pCurrNotePage->m_pNext; } pCurrNotePage->m_pNext = this; } else { m_nTabIdx = 0; m_pZNoteBook->m_pZNotePage = this; } // m_nTabNbr = (zSHORT) lTabNbr; m_nTabNbr = m_nTabIdx + 1; m_pZNoteBook->m_nPageCnt++; TC_ITEM TabCtrlItem; TabCtrlItem.mask = TCIF_TEXT; TabCtrlItem.pszText = m_pchCaption; #ifdef DEBUG_ALL TraceLineS( "Adding TabCtrlItem: ", m_pchCaption ); #endif m_pZNoteBook->InsertItem( m_nTabIdx, &TabCtrlItem ); //?Attr.StyleEx = WS_EX_TRANSPARENT; //?Attr.Style &= ~(WS_CLIPSIBLINGS | WS_CLIPCHILDREN); CreateZ( ); }