[BACK]Return to asir32guiview.cpp CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / windows / asir32gui

Diff for /OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp between version 1.5 and 1.8

version 1.5, 2001/07/20 01:32:08 version 1.8, 2002/09/12 03:12:56
Line 8 
Line 8 
 #include "asir32guiView.h"  #include "asir32guiView.h"
 #include "FatalDialog.h"  #include "FatalDialog.h"
 #include <direct.h>  #include <direct.h>
   #include <io.h>
   
 #ifdef _DEBUG  #ifdef _DEBUG
 #define new DEBUG_NEW  #define new DEBUG_NEW
Line 66  BEGIN_MESSAGE_MAP(CAsir32guiView, CEditView)
Line 67  BEGIN_MESSAGE_MAP(CAsir32guiView, CEditView)
         ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)          ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
         ON_COMMAND(IDR_FONT, OnFont)          ON_COMMAND(IDR_FONT, OnFont)
         ON_WM_CREATE()          ON_WM_CREATE()
           ON_COMMAND(ID_CONTRIBHELP, OnContribhelp)
           ON_UPDATE_COMMAND_UI(ID_CONTRIBHELP, OnUpdateContribhelp)
         //}}AFX_MSG_MAP          //}}AFX_MSG_MAP
         // 標準印刷コマンド          // 標準印刷コマンド
 //      ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)  //      ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
Line 165  CAsir32guiDoc* CAsir32guiView::GetDocument() // 非デバ
Line 168  CAsir32guiDoc* CAsir32guiView::GetDocument() // 非デバ
   
 void CAsir32guiView::PutChar(int c)  void CAsir32guiView::PutChar(int c)
 {  {
   int i;    int i,len;
   char buf[2];    char buf[2];
   
     if ( EndPos >= sizeof(Buffer)-1 ) {
         Beep(); return;
     }
   for ( i = EndPos-1; i >= CurrentPos; i-- )    for ( i = EndPos-1; i >= CurrentPos; i-- )
     Buffer[i+1] = Buffer[i];        Buffer[i+1] = Buffer[i];
   Buffer[CurrentPos] = (char)c;    Buffer[CurrentPos] = (char)c;
   buf[0] = (char)c; buf[1] = 0;  //  buf[0] = (char)c; buf[1] = 0;
   Insert(buf,FALSE);  //  Insert(buf,FALSE);
     len = GetWindowTextLength();
     if ( len+1 >= TextBufferSize )
         DeleteTop();
     CEditView::OnChar(c, 1, 0);
   CurrentPos++;    CurrentPos++;
   EndPos++;    EndPos++;
 }  }
Line 280  void CAsir32guiView::Beep(void) {
Line 290  void CAsir32guiView::Beep(void) {
 }  }
   
 void CAsir32guiView::Paste(void) {  void CAsir32guiView::Paste(void) {
         char buf[2*BUFSIZ];      char buf[2*BUFSIZ];
         const char *src;      const char *src;
         char c;      char c;
         int i,j,l;      int i,j,l;
         HGLOBAL hClip;      HGLOBAL hClip;
   
         if ( asirgui_kind == ASIRGUI_MESSAGE ) {      if ( asirgui_kind == ASIRGUI_MESSAGE ) {
                 Beep(); return;          Beep(); return;
         }      }
   
         if ( OpenClipboard() == FALSE ) {      if ( OpenClipboard() == FALSE ) {
         Beep(); return;          Beep(); return;
     }      }
     hClip = GetClipboardData(CF_TEXT);      hClip = GetClipboardData(CF_TEXT);
     src = (const char *)::GlobalLock(hClip);      src = (const char *)::GlobalLock(hClip);
     if ( !src || (l = strlen(src)) >= 2*BUFSIZ ) {      if ( !src || (l = strlen(src)) >= sizeof(Buffer) ) {
         ::CloseClipboard();          ::CloseClipboard();
         Beep(); return;          Beep(); return;
     }      }
         for ( i = j = 0; i < l; i++ )      for ( i = j = 0; i < l; i++ )
                 if ( (c = src[i]) != '\n' && c != '\r' )          if ( (c = src[i]) != '\n' && c != '\r' )
                         buf[j++] = c;               buf[j++] = c;
         buf[j] = 0;      buf[j] = 0;
     ::GlobalUnlock(hClip);      ::GlobalUnlock(hClip);
     ::CloseClipboard();      ::CloseClipboard();
       if ( EndPos+j >= sizeof(Buffer)-1 ) {
           Beep(); return;
       }
     GetEditCtrl().ReplaceSel(buf);      GetEditCtrl().ReplaceSel(buf);
         strncpy(Buffer+EndPos,buf,j);      strncpy(Buffer+EndPos,buf,j);
         EndPos += j; CurrentPos = EndPos;      EndPos += j; CurrentPos = EndPos;
 }  }
   
 #define CTRL(c) (c)&0x1f  #define CTRL(c) (c)&0x1f
Line 548  int CAsir32guiView::OnCreate(LPCREATESTRUCT lpCreateSt
Line 561  int CAsir32guiView::OnCreate(LPCREATESTRUCT lpCreateSt
         GetEditCtrl().SetTabStops(m_nTabStops);          GetEditCtrl().SetTabStops(m_nTabStops);
   
         return 0;          return 0;
   }
   
   void CAsir32guiView::OnContribhelp()
   {
           // TODO: この位置にコマンド ハンドラ用のコードを追加してください
           char root[BUFSIZ],errmsg[BUFSIZ],helpfile[BUFSIZ];
   
           get_rootdir(root,sizeof(root),errmsg);
           sprintf(helpfile,"%s\\bin\\cmanhelp.chm",root);
           HtmlHelp(NULL, helpfile, HH_DISPLAY_TOPIC, 0);
   }
   
   void CAsir32guiView::OnUpdateContribhelp(CCmdUI* pCmdUI)
   {
           // TODO: この位置に command update UI ハンドラ用のコードを追加してください
           char root[BUFSIZ],errmsg[BUFSIZ],helpfile[BUFSIZ];
   
           if ( getenv("OpenXM_WIN_ROOT") ) {
                   get_rootdir(root,sizeof(root),errmsg);
                   sprintf(helpfile,"%s\\bin\\cmanhelp.chm",root);
                   if ( _access(helpfile,04) != -1 ) {
                           pCmdUI->Enable( TRUE );
                           return;
                   }
           }
           pCmdUI->Enable( FALSE );
 }  }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>