示例#1
0
zOPER_EXPORT zSHORT OPERATION
zwTZVSDBAD_SpawnObjectBrowser( zVIEW    vSubtask )
{
   zVIEW    StackObject;
   zVIEW    lpZeidonVML;
   zVIEW    v;
   zLONG    lDataLth;
   zSHORT   nZRetCode;

   nZRetCode = GetViewByName( &lpZeidonVML, "ZeidonVML", vSubtask, zLEVEL_TASK );
   nZRetCode = GetViewByName( &StackObject, "StackObject", lpZeidonVML, zLEVEL_SUBTASK );
   lDataLth = 4;
   GetBlobFromAttribute( &v, &lDataLth,
                         StackObject, "Variable", "Value" );
   if ( v != 0 )
   {
      nZRetCode = StageBrowser( vSubtask, v );
   }
   if ( nZRetCode == -1 )
   {
      MessageSend( vSubtask, "VS00201", "Launcher",
                   "View is not yet valid",
                   zMSGQ_OBJECT_CONSTRAINT_ERROR, zBEEP );
   }
   return( 0 );
}
示例#2
0
/////////////////////////////////////////////////////////////////////////////
//
// ENTRY:
//
// PURPOSE:    Set the VKey Ctrl/Alt/Shift check boxes
//
/////////////////////////////////////////////////////////////////////////////
zOPER_EXPORT zSHORT OPERATION
PostBSetVKey( zVIEW vSubtask )
{
   zULONG ulLth = sizeof( zACCEL_DEF );
   zVIEW  vHotkey;
   zACCEL_DEF ac;

   GetViewByName( &vHotkey, "KZHKEYSO", vSubtask, zLEVEL_ANY );
   if ( vHotkey &&
        CheckExistenceOfEntity( vHotkey, "Hotkey" ) > zCURSOR_UNCHANGED )
   {
      GetBlobFromAttribute( &ac, &ulLth, vHotkey, "Hotkey", "KeyCombo" );
      SetCtrlState( vSubtask, "Ctrl", zCONTROL_STATUS_CHECKED, ac.fCtrl );
      SetCtrlState( vSubtask, "Alt", zCONTROL_STATUS_CHECKED, ac.fAlt );
      SetCtrlState( vSubtask, "Shift", zCONTROL_STATUS_CHECKED, ac.fShift );
//    if ( CheckExistenceOfEntity( vHotkey, "Operation" ) > zCURSOR_UNCHANGED )
//    {
//       zPCHAR pch;
//
//       GetAddrForAttribute( &pch, vHotkey, "Operation", "DLL_Name" );
//       SetCtrlText( vSubtask, "DLL_Name", pch );
//    }
   }

   return( 0 );
}
示例#3
0
文件: TzCtlTAB.cpp 项目: DeegC/10d
/////////////////////////////////////////////////////////////////////////////
//
//  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
}
示例#4
0
/////////////////////////////////////////////////////////////////////////////
//
// ENTRY:
//
// PURPOSE:    Save the HK object(both Source & Executable???)
//
/////////////////////////////////////////////////////////////////////////////
zOPER_EXPORT zSHORT OPERATION
zwTZHKEYAD_SaveHK_ForLPLR( zVIEW vSubtask )
{
   zPCHAR  lpGlobalHotkey;
   zUSHORT usGlobalHotkeyLth;
   LPACCEL_TABLE lpAT;
   LPACCEL_TABLE lpAT_Start;
   zCHAR   szFileSpec[ zMAX_FILESPEC_LTH + 1 ];
   zVIEW   vKZHKEYSO;
   zVIEW   vKZHKEYXO;
   zVIEW   vTaskLPLR;
   zULONG  ulMaxLth;
   zSHORT  nRC;

   GetViewByName( &vKZHKEYSO, "KZHKEYSO", vSubtask, zLEVEL_ANY );

   // Get the directory.
   GetViewByName( &vTaskLPLR, "TaskLPLR", vSubtask, zLEVEL_TASK );
   if ( vTaskLPLR == 0 )
   {
      MessageSend( vSubtask, "HK00102", "Hot Keys",
                   "Can't locate LPLR?",
                   zMSGQ_OBJECT_CONSTRAINT_ERROR, zBEEP );
      return( 0 );
   }

   GetStringFromAttribute( szFileSpec, vTaskLPLR, "LPLR", "MetaSrcDir" );
   zstrcat( szFileSpec, "\\ZEIDON.PHK" );
   MiSetOI_ReleaseForView( vKZHKEYSO, szlReleaseCurrent );
   CommitOI_ToFile( vKZHKEYSO, szFileSpec, zASCII | zENCODE_BLOBS | zNO_NULL_STRING_TERM );

   SfAllocTaskMemory( vSubtask, (zCOREMEM) &lpGlobalHotkey, 65000 );
   lpAT = (LPACCEL_TABLE) SfLockTaskMemory( lpGlobalHotkey );
   lpAT_Start = lpAT;
   usGlobalHotkeyLth = 0;

   SfActivateSysEmptyOI( &vKZHKEYXO, "KZHKEYXO", vSubtask,
                         zSINGLE | zLEVEL_APPLICATION );
   CreateEntity( vKZHKEYXO, "App", zPOS_AFTER );
   nRC = SetEntityCursor( vKZHKEYSO, "Hotkey", 0, zPOS_FIRST,
                          0, 0, 0, 0, 0, 0 );
   while ( nRC >= 0 )
   {
      CreateEntity( vKZHKEYXO, "Hotkey", zPOS_AFTER );
      SetMatchingAttributesByName( vKZHKEYXO, "Hotkey",
                                   vKZHKEYSO, "Hotkey", zSET_ALL );
      SetAttributeFromAttribute( vKZHKEYXO, "Hotkey", "COP",
                                 vKZHKEYSO, "Operation", "Name" );
      SetAttributeFromAttribute( vKZHKEYXO, "Hotkey", "DLL",
                                 vKZHKEYSO, "Hotkey", "DLL_Name" );

      lpAT->chType = zACCEL_HOTKEY;
      ulMaxLth = sizeof( zACCEL_DEF );
      GetBlobFromAttribute( &(lpAT->ac), &ulMaxLth,
                            vKZHKEYSO, "Hotkey", "KeyCombo" );
      lpAT->nID = (zSHORT) GetRelativeEntityNumber( vKZHKEYSO,
                                                    "Hotkey", 0, 0L );
      usGlobalHotkeyLth += sizeof( zACCEL_TABLE );
      lpAT++;

      nRC = SetCursorNextEntity( vKZHKEYSO, "Hotkey", 0 );
   }

   zmemset( lpAT, 0xFF, sizeof( zACCEL_TABLE ) ); // terminator
   usGlobalHotkeyLth += sizeof( zACCEL_TABLE );
   lpAT = lpAT_Start;

   SetAttributeFromBlob( vKZHKEYXO, "App", "Hotkey",
                         lpAT, usGlobalHotkeyLth );
   SfUnlockTaskMemory( lpAT );
   SfFreeTaskMemory( lpGlobalHotkey );

   GetStringFromAttribute( szFileSpec, vTaskLPLR, "LPLR", "ExecDir" );
   zstrcat( szFileSpec, "\\ZEIDON.XKY" );
   CommitOI_ToFile( vKZHKEYXO, szFileSpec, zASCII );
   return( 0 );
}
示例#5
0
/////////////////////////////////////////////////////////////////////////////
//
// FUNCTION: fnPushMsgQ_State
//
// PURPOSE: This routine sets the state of the message queue object
//          and pushes the state on the stack.  The stack is organized
//          as follows:
//
//             zLONG  lCurrentState;
//             zSHORT nEntryCnt;
//             zSHORT nEntryMax;
//             zLONG  lState[ 1 ];
//             zLONG  lState[ 2 ];
//                 .
//                 .
//                 .
//
//             zLONG  lState[ n ];  // same as lCurrentState
//
/////////////////////////////////////////////////////////////////////////////
void
fnPushMsgQ_State( zVIEW vMsgQ,
                  zLONG lState )
{
   zPCHAR  pStack;    // blob containing Status Stack
   zUSHORT uCnt;
   zUSHORT uMax;

#ifdef zREMOTE_SERVER
   // Protect this with a semaphore!!!
   SysMutexLock( vSubtask, "ZDm", 0, 0 );
// TraceLineS( "PushMsgQ_State Lock Mutex ZDm", "" );
// DisplayObjectInstance( vMsgQ, 0, 0 );
// ::MessageBox( 0, "PushMsgQ", "ZDr", MB_OK );
#endif

   GetAddrForAttribute( (zPCHAR *) &pStack, vMsgQ, szlTask, szlStatus );
   if ( pStack )
   {
      uCnt = *((zPSHORT) (pStack + sizeof( zLONG )));
      uMax = *((zPSHORT) (pStack + sizeof( zLONG ) + sizeof( zSHORT )));

      // If there is no more room on the stack ... make more room.
      if ( uCnt >= uMax )
      {
         zULONG ulBlobLth;
         zULONG ulLth;

         uMax += 10;
         ulLth = sizeof( zLONG ) + 2 * sizeof( zSHORT ) + uMax * sizeof( zLONG );
         ulBlobLth = ulLth;
         zPCHAR pch = new char[ ulLth ];
         GetBlobFromAttribute( pch, &ulBlobLth, vMsgQ, szlTask, szlStatus );
         if ( ulLth != ulBlobLth + 10 * sizeof( zLONG ) )
            OperatorSend( 0, szlDrvr, "PushMsgQ_State", TRUE );
         else
            TraceLineI( "Message queue stack expanded to ", ulLth );

         SetAttributeFromBlob( vMsgQ, szlTask, szlStatus, pch, ulLth );
         GetAddrForAttribute( (zPCHAR *) &pStack, vMsgQ, szlTask, szlStatus );
         *((zPSHORT) (pStack + sizeof( zLONG ) + sizeof( zSHORT ))) = uMax;
         delete [] pch;
      }

      (*((zPSHORT) (pStack + sizeof( zLONG ))))++;    // increment EntryCnt
      *((zPLONG) pStack) = lState;                    // set CurrentState
      *((zPLONG) (pStack + sizeof( zLONG ) +          // set State[ n ]
                   2 * sizeof( zSHORT ) +
                   uCnt * sizeof( zLONG ))) = lState; // (not incrementing
                                                      //  uCnt since not
                                                      //  used hereafter)
   }
   else
   {
      TraceLineS( "PushMsgQ_State Lock Mutex ZDm: ", "NULL Status?" );
      DisplayObjectInstance( vMsgQ, 0, 0 );
      ::MessageBox( 0, "PushMsgQ_State NULL Status?", "ZDr Error", MB_OK );
   }

#ifdef zREMOTE_SERVER
// TraceLineS( "PushMsgQ_State Unlock Mutex ZDm", "" );
   SysMutexUnlock( vSubtask, "ZDm", 0 );
#endif
}
示例#6
0
文件: tzadwexp.c 项目: arksoftgit/10c
/*************************************************************************************************
**
**    OPERATION: SetRptShapeFromBlob
**
*************************************************************************************************/
zOPER_EXPORT zLONG /*GLOBAL */  OPERATION
SetRptShapeFromBlob( zVIEW vReportDef )
{

   zCHAR   szBlob[ 8 + (6 * sizeof( zLONG )) ];
// zVIEW   vReport;
// zLONG   lSubtype;
   zULONG  ulPenColor = 0xFF000000;
   zULONG  ulShapeColor = 0xFF000000;
   zULONG  ulLth = sizeof( szBlob );

   zmemset( szBlob, 0, ulLth );
   GetBlobFromAttribute( szBlob, &ulLth, vReportDef, "Control", "CtrlBOI" );
// TraceLineI( "Shape control blob lth = ", ulLth );
   if ( ulLth == sizeof( szBlob ) ||
        ulLth == sizeof( szBlob ) - (1 * sizeof( zLONG )) || // remove this soon
        ulLth == sizeof( szBlob ) - (2 * sizeof( zLONG )) )
   {
      zLONG   lPenWidth;
      zLONG   lPenType;
      zLONG   lRoundValue;
      zLONG   lFlags = 0;

      if ( szBlob[ 4 ] == TRUE )
      {
         TraceLineI( "****   Horizontal Line    **** ", szBlob[ 4 ] );
         SetAttributeFromInteger( vReportDef, "Control", "BorderBottom", szBlob[ 4 ] );
      }

/*
      SetCtrlState( vSubtask, "Rectangle", zCONTROL_STATUS_CHECKED,
                    szBlob[ 0 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "RoundRect", zCONTROL_STATUS_CHECKED,
                    szBlob[ 1 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "Ellipse", zCONTROL_STATUS_CHECKED,
                    szBlob[ 2 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "Diamond", zCONTROL_STATUS_CHECKED,
                    szBlob[ 3 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "HorizontalLine", zCONTROL_STATUS_CHECKED,
                    szBlob[ 4 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "VerticalLine", zCONTROL_STATUS_CHECKED,
                    szBlob[ 5 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "DiagonalDescend", zCONTROL_STATUS_CHECKED,
                    szBlob[ 6 ] ? TRUE : FALSE );
      SetCtrlState( vSubtask, "DiagonalAscend", zCONTROL_STATUS_CHECKED,
                    szBlob[ 7 ] ? TRUE : FALSE );
*/

      lPenWidth = *((zPLONG) (szBlob + 8));
      lPenType = *((zPLONG) (szBlob + 8 + sizeof( zLONG )));
      ulPenColor = *((zPLONG) (szBlob + 8 + (2 * sizeof( zLONG ))));
      lRoundValue = *((zPLONG) (szBlob + 8 + (3 * sizeof( zLONG ))));
      if ( ulLth == sizeof( szBlob ) )
      {
         ulShapeColor = *((zPULONG) (szBlob + 8 + (4 * sizeof( zLONG ))));
         lFlags = *((zPLONG) (szBlob + 8 + (5 * sizeof( zLONG ))));
      }

      zltoa( ulPenColor, szBlob );
      SetAttributeFromString( vReportDef, "Control", "wLineColorText", szBlob );
      SetAttributeFromInteger( vReportDef, "Control", "wLineColorInt", ulPenColor );
      SetAttributeFromInteger( vReportDef, "Control", "BorderWidth", lPenWidth );
      switch ( lPenType )
      {
         case 1:
            SetAttributeFromInteger( vReportDef, "Control", "BorderStyle", 1 );
            break;

         case 2:
            SetAttributeFromInteger( vReportDef, "Control", "BorderStyle", 2 );
            break;

         case 3:
            SetAttributeFromInteger( vReportDef, "Control", "BorderStyle", 3 );
            break;

         case 4:
            SetAttributeFromInteger( vReportDef, "Control", "BorderStyle", 4 );
            break;

         default:
            SetAttributeFromInteger( vReportDef, "Control", "BorderStyle", 0 );
            break;
      }


      zltoa( lRoundValue, szBlob );
      //SetCtrlText( vSubtask, "RoundValue", szBlob );
   }
   else
   {
      //SetCtrlState( vSubtask, "Rectangle", zCONTROL_STATUS_CHECKED, TRUE );
      //SetCtrlText( vSubtask, "PenWidth", "1" );
   }

   /*
   SetCtrlProperty( vSubtask, "__ColorLine",
                    zCONTROL_PROPERTY_INTEGER_DATA,
                    ulPenColor, 0 );
   SetCtrlProperty( vSubtask, "__ColorShape",
                    zCONTROL_PROPERTY_INTEGER_DATA,
                    ulShapeColor, 0 );
   */

   return( 0 );
} // SetRptShapeFromBlob