state.c

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 760 行 · 第 1/2 页

C
760
字号
  {
    return( State->gridhinc );
  }


void WINEXP SetHorizontalInc( unsigned inc )
/******************************************/

/* set the vertical grid increment value */

  {
    State->gridhinc = inc;
  }


extern void SetObjects( void * objs )
/***********************************/

/* save a pointer to the object table */

  {
    State->objects = objs;
  }


extern void * GetObjects( void )
/******************************/

/* get the object table pointer */

  {
    return( State->objects );
  }

extern void SaveObject( void )
/****************************/

/* remember the previous object */

  {
    CURROBJPTR currobj;

    currobj = GetECurrObject();
    if( currobj != NULL ) {
        State->prevobject = GetObjptr( currobj );
    }
  }


extern void RestorePrevObject( void )
/***********************************/

/* reset the currobject from the previous object */

  {
    AddCurrObject( State->prevobject );
  }


extern OBJPTR GetCurrObj( void )
/******************************/
/* get the current object */
{
    if( State == NULL ) {
        return( NULL );
    } else {
        return( State->currobj );
    }
}

extern void WINEXP GetOffset( POINT * point )
/*******************************************/

/* return the offset point */

  {
    *point = State->offset;
  }

extern void SetOffset( POINT point )
/**********************************/

/* set the offset point */

  {
    State->offset = point;
  }

extern RECT GetScrollRect( void )
/*******************************/

/* return the scroll rect */

  {
    return( State->scrollrect );
  }

extern void SetScrollRect( RECT rect )
/************************************/

/* set the scroll rect */

  {
    State->scrollrect = rect;
  }

extern void SetScrollConfig( SCR_CONFIG flag )
/********************************************/

/* Set the scroll configuration */

  {
    State->scrollconfig = flag;
  }

extern SCR_CONFIG GetScrollConfig( void )
/***************************************/

/* Get the scroll configuration */

  {
    return( State->scrollconfig );
  }

extern OBJPTR GetSelectEatom( void )
/**********************************/

/* return the banded select eatom */

  {
    return( State->selecteatom );
  }


extern void SetSelectEatom( OBJPTR eatom )
/****************************************/

/* set the banded select eatom */

  {
    State->selecteatom = eatom;
  }

extern void SetShowEatoms( BOOL show )
/************************************/
{
    State->show_eatoms = show;
} /* SetShowEatoms */

extern BOOL GetShowEatoms( void )
/*******************************/
{
    return( State->show_eatoms );
} /* GetShowEatoms */


int WINEXP FMTranslateAccelerator( HWND wnd, LPMSG message )
/**********************************************************/

  {
    int ret;
    int i;

    if( !InitState( wnd ) ) {
        return( FALSE );
    }

    ret = FALSE;

    if( State->currstate == EDITING ) {
        return( ret );
    }
    for( i=0; ( ( i < ACCELS ) && ( ret == FALSE ) ); i++ ) {
        if( State->hAccel[i] != NULL ) {
            ret |= TranslateAccelerator( wnd, State->hAccel[i], message );
        }
    }
    return( ret );
  }

extern void LoadAccel( int bitmap )
/****************************************/

  {
    if( bitmap & MENU_DELETE ) {
        State->hAccel[1] = LoadAccelerators( GetInst(), "DeleteAccelTable" );
    }
    if( bitmap & MENU_COPY ) {
        State->hAccel[2] = LoadAccelerators( GetInst(), "CopyAccelTable" );
    }
    if( bitmap & MENU_PASTE ) {
        State->hAccel[3] = LoadAccelerators( GetInst(), "PasteAccelTable" );
    }
    if( bitmap & MENU_CUT ) {
        State->hAccel[4] = LoadAccelerators( GetInst(), "CutAccelTable" );
    }
  }

extern BOOL GetShift( void )
/**************************/

  {
    return( State->keystate & MK_SHIFT );
  }


extern BOOL GetControl( void )
/****************************/

  {
    return( State->keystate & MK_CONTROL );
  }

extern void SetKeyState( WORD keystate )
/**************************************/

  {
    State->keystate = keystate;
  }

void WINEXP DisplayError( char * msg )
/************************************/

/* report an error message */

  {
    if( msg != NULL ) {
        if( ShowError() ) {
            MessageBox( GetAppWnd(), (LPSTR) msg, NULL,
                        MB_ICONEXCLAMATION | MB_OK );
        } else {
            State->error = EdAlloc( strlen( msg ) + 1 );
            strcpy( State->error, msg );
        }
    }
  }

extern void ReportPending( void )
/*******************************/

  {
      if( ShowError() && ( State->error != NULL ) ) {
            MessageBox( GetAppWnd(), (LPSTR) State->error, NULL,
                        MB_ICONEXCLAMATION | MB_OK );
            EdFree( State->error );
            State->error = NULL;
      }
  }

void WINEXP ClearError( void )
/****************************/

  {
    if( State->error != NULL ) {
        EdFree( State->error );
        State->error = NULL;
    }
  }


extern BOOL ShowError( void )
/***************************/

  {
    return( State->showerror );
  }

void WINEXP SetShowError( BOOL show )
/***********************************/

  {
    State->showerror = show;
  }



BOOL WINEXP IsEditting( HWND wnd )
/********************************/

  {
    InitState( wnd );
    return( State->currstate == EDITING );
  }

void WINEXP SetMouseRtn( HWND wnd, void (FM_EXPORT *rtn)( HWND, RECT *) )
/**********************************************/

  {
    InitState( wnd );
    State->mouseaction = rtn;
  }


extern void MouseAction( RECT * r )
/*********************************/

  {
    RECT safe;

    if( State->mouseaction != NULL ) {
        safe = *r;
        State->mouseaction( State->appwnd, &safe );
    }
  }


extern void SetResizeGrid( unsigned horz, unsigned vert )
/*******************************************************/

  {
    State->hresizegrid = horz;
    State->vresizegrid = vert;
  }


extern unsigned GetResizeHInc( void )
/***********************************/

  {
    return( State->hresizegrid );
  }


extern unsigned GetResizeVInc( void )
/***********************************/

  {
    return( State->vresizegrid );
  }



BOOL WINEXP InitStateFormID( STATE_HDL st )
/*****************************************/

  {
    STATE * s;

    for( s = StateList; s != NULL; s = s->next ) {
        if( s->id == st ) {
            break;
        }
    }
    State = s;
    return( State != NULL );
  }

STATE_HDL WINEXP GetCurrFormID( void )
/************************************/

  {
    if( State != NULL ) {
        return( State->id );
    }
    return( 0 );
  }

void WINEXP HideSelectBoxes( void )
/*********************************/
{
    OBJECT *    currobj;
    BOOL        show;

    currobj = GetCurrObj();
    show = FALSE;
    (*currobj)( SHOW_SEL_BOXES, currobj, &show, NULL );
} /* HideSelectBoxes */

void WINEXP ShowSelectBoxes( void )
/*********************************/
{
    OBJECT *    currobj;
    BOOL        show;

    currobj = GetCurrObj();
    show = TRUE;
    (*currobj)( SHOW_SEL_BOXES, currobj, &show, NULL );
} /* ShowSelectBoxes */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?