Annotation of OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp, Revision 1.32
1.1 noro 1: // asir32guiView.cpp : CAsir32guiView クラスの動作の定義を行います。
2: //
3:
4: #include "stdafx.h"
5:
6: #include "asir32gui.h"
7: #include "asir32guiDoc.h"
8: #include "asir32guiView.h"
9: #include "FatalDialog.h"
1.3 noro 10: #include <direct.h>
1.6 noro 11: #include <io.h>
1.1 noro 12:
13: #ifdef _DEBUG
14: #define new DEBUG_NEW
15: #undef THIS_FILE
16: static char THIS_FILE[] = __FILE__;
17: #endif
18:
1.5 noro 19: // const TextBufferSize = 32768;
1.19 ohara 20: const int TextBufferSize = 16384;
1.1 noro 21:
22: CAsir32guiView *theView;
23:
24: extern "C"
25: {
26: char *prev_hist(void), *next_hist(void), *search_hist(char *p);
27: void read_input_history(),write_input_history();
28: void init_input_history();
29: void add_hist(char *p), reset_traverse(void);
30: void asir_terminate(void);
31: void Main(int,char*[]);
32: void loadfile(char *);
33: void put_line(char *);
34: void send_intr(void);
35: void insert_to_theView(char *);
1.26 ohara 36: BOOL get_rootdir(char *,int,char *);
1.32 ! ohara 37: const char *get_locale_lang_iso639();
1.29 ohara 38: const char *get_helpdir();
1.1 noro 39: extern int bigfloat, prtime, prresult;
40: extern char *asir_libdir;
1.2 noro 41: extern int asirgui_kind;
1.1 noro 42:
43: void insert_to_theView(char *str)
44: {
45: (void)theView->Insert(str);
46: }
47: void flush_log()
48: {
49: if ( theView->Logging )
50: theView->OnFileLog();
51: }
52: }
53:
54: /////////////////////////////////////////////////////////////////////////////
55: // CAsir32guiView
56:
57: IMPLEMENT_DYNCREATE(CAsir32guiView, CEditView)
58:
59: BEGIN_MESSAGE_MAP(CAsir32guiView, CEditView)
60: //{{AFX_MSG_MAP(CAsir32guiView)
61: ON_WM_KEYDOWN()
62: ON_WM_CHAR()
63: ON_WM_LBUTTONUP()
64: ON_WM_RBUTTONDOWN()
65: ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
66: ON_COMMAND(ID_FILE_LOG, OnFileLog)
67: ON_COMMAND(ID_ASIRHELP, OnAsirhelp)
68: ON_UPDATE_COMMAND_UI(ID_FILE_LOG, OnUpdateFileLog)
69: ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
1.3 noro 70: ON_COMMAND(IDR_FONT, OnFont)
71: ON_WM_CREATE()
1.6 noro 72: ON_COMMAND(ID_CONTRIBHELP, OnContribhelp)
1.9 noro 73: ON_WM_SIZE()
1.11 noro 74: ON_COMMAND(ID_DSOLV, OnDsolv)
75: ON_COMMAND(ID_GNUPLOT, OnGnuplot)
76: ON_COMMAND(ID_OKDIFF, OnOkdiff)
77: ON_COMMAND(ID_OKDMODULE, OnOkdmodule)
78: ON_COMMAND(ID_OM, OnOm)
79: ON_COMMAND(ID_PFPCOH, OnPfpcoh)
80: ON_COMMAND(ID_PLUCKER, OnPlucker)
81: ON_COMMAND(ID_SM1, OnSm1)
82: ON_COMMAND(ID_TIGERS, OnTigers)
83: ON_COMMAND(ID_TODOPARAMETRIZE, OnTodoparametrize)
1.24 noro 84: ON_COMMAND(ID_NOROMATRIX, OnNoromatrix)
85: ON_COMMAND(ID_NOROMWL, OnNoromwl)
86: ON_COMMAND(ID_NNNDBF, OnNnndbf)
1.25 noro 87: ON_COMMAND(ID_NOROPD, OnNoropd)
88: ON_COMMAND(ID_NSTWLG, OnNstwistedlog)
1.1 noro 89: //}}AFX_MSG_MAP
90: // 標準印刷コマンド
91: // ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
92: // ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
93: // ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
94: END_MESSAGE_MAP()
95:
96: /////////////////////////////////////////////////////////////////////////////
97: // CAsir32guiView クラスの構築/消滅
98:
99: CAsir32guiView::CAsir32guiView()
100: {
101: // TODO: この場所に構築用のコードを追加してください。
102: static int tmpView_created = 0;
103:
104: init_input_history();
105: read_input_history();
106: DebugMode = 0;
107: DebugInMain = 0;
1.9 noro 108: // MaxLineLength = 80;
1.1 noro 109: LogStart = 0;
110: Logging = 0;
111: Logfp = NULL;
112: ResetIndex();
113: theView = this;
1.23 ohara 114: #if _MSC_VER > 1300
115: /* VS2003.NET or later */
116: (AfxGetApp())->EnableHtmlHelp();
117: #endif
1.1 noro 118: }
119:
120: CAsir32guiView::~CAsir32guiView()
121: {
122: write_input_history();
123: }
124:
125: BOOL CAsir32guiView::PreCreateWindow(CREATESTRUCT& cs)
126: {
127: // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
128: // 修正してください。
129:
130: m_dwDefaultStyle = dwStyleDefault & ~ES_AUTOHSCROLL ;
131: m_dwDefaultStyle &= ~WS_HSCROLL;
132: return CCtrlView::PreCreateWindow(cs);
133: }
134:
135: /////////////////////////////////////////////////////////////////////////////
136: // CAsir32guiView クラスの描画
137:
138: void CAsir32guiView::OnDraw(CDC* pDC)
139: {
140: CAsir32guiDoc* pDoc = GetDocument();
141: ASSERT_VALID(pDoc);
142:
143: // TODO: この場所にネイティブ データ用の描画コードを追加します。
144: }
145:
146: /////////////////////////////////////////////////////////////////////////////
147: // CAsir32guiView クラスの印刷
148:
149: BOOL CAsir32guiView::OnPreparePrinting(CPrintInfo* pInfo)
150: {
151: // デフォルトの印刷準備
152: return DoPreparePrinting(pInfo);
153: }
154:
155: void CAsir32guiView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
156: {
157: // TODO: 印刷前の特別な初期化処理を追加してください。
158: }
159:
160: void CAsir32guiView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
161: {
162: // TODO: 印刷後の後処理を追加してください。
163: }
164:
165: /////////////////////////////////////////////////////////////////////////////
166: // CAsir32guiView クラスの診断
167:
168: #ifdef _DEBUG
169: void CAsir32guiView::AssertValid() const
170: {
171: CEditView::AssertValid();
172: }
173:
174: void CAsir32guiView::Dump(CDumpContext& dc) const
175: {
176: CEditView::Dump(dc);
177: }
178:
179: CAsir32guiDoc* CAsir32guiView::GetDocument() // 非デバッグ バージョンはインラインです。
180: {
181: ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAsir32guiDoc)));
182: return (CAsir32guiDoc*)m_pDocument;
183: }
184: #endif //_DEBUG
185:
186: /////////////////////////////////////////////////////////////////////////////
187: // CAsir32guiView クラスのメッセージ ハンドラ
188:
189: void CAsir32guiView::PutChar(int c)
190: {
1.8 noro 191: int i,len;
1.1 noro 192: char buf[2];
193:
1.8 noro 194: if ( EndPos >= sizeof(Buffer)-1 ) {
195: Beep(); return;
196: }
1.1 noro 197: for ( i = EndPos-1; i >= CurrentPos; i-- )
1.8 noro 198: Buffer[i+1] = Buffer[i];
1.1 noro 199: Buffer[CurrentPos] = (char)c;
1.8 noro 200: // buf[0] = (char)c; buf[1] = 0;
201: // Insert(buf,FALSE);
202: len = GetWindowTextLength();
203: if ( len+1 >= TextBufferSize )
204: DeleteTop();
205: CEditView::OnChar(c, 1, 0);
1.1 noro 206: CurrentPos++;
207: EndPos++;
208: }
209:
210: void CAsir32guiView::DeleteChar(int count) {
211: int i,s,e;
212: char null = 0;
213:
214: if ( count > (EndPos-CurrentPos) )
215: count = EndPos - CurrentPos;
1.15 noro 216: if ( count > 0 ) {
1.1 noro 217: EndPos -= count;
218: for ( i = CurrentPos; i < EndPos; i++ )
219: Buffer[i] = Buffer[i+count];
220: GetEditCtrl().GetSel(s,e);
221: GetEditCtrl().SetSel(s,s+count);
222: GetEditCtrl().ReplaceSel(&null);
223: }
224: }
225:
226: void CAsir32guiView::Insert(char *buf,BOOL wrap)
227: {
228: char t[BUFSIZ*4];
229: char *p,*q,c;
230: int len;
231: int i;
232:
233: if ( wrap ) {
234: i = GetEditCtrl().LineLength(-1);
235: for ( p = t, q = buf; (c = *p++ = *q++) != 0; )
236: if ( c == '\r' ) {
237: *p++ = *q++; i = 0;
238: } else if ( (*q != '\r') && (++i == MaxLineLength) ) {
239: *p++ = '\r'; *p++ = '\r'; *p++ = '\n'; i = 0;
240: }
241: p = t;
242: } else
243: p = buf;
244: len = GetWindowTextLength();
245: if ( strlen(p) + len >= TextBufferSize )
246: DeleteTop();
247: GetEditCtrl().ReplaceSel(p);
248: }
249:
250: void CAsir32guiView::DeleteTop()
251: {
252: const char *p,*q;
253: const char *buf;
254: char null = 0;
1.20 ohara 255: int len,len0;
1.1 noro 256:
257: buf = LockBuffer();
258: len0 = len = strlen(buf);
259: for ( p = buf; len >= TextBufferSize/2; ) {
260: q = strchr(p,'\n');
261: if ( !q ) {
262: len = 0; break;
263: } else {
264: q++; len -= (q-p); p = q;
265: }
266: }
267: if ( Logging ) {
1.4 noro 268: if ( len < LogStart )
269: LogStart -= len;
270: else {
271: fwrite(buf+LogStart,1,len-LogStart,Logfp);
272: LogStart = 0;
273: }
1.1 noro 274: }
275: UnlockBuffer();
276: if ( q ) {
277: GetEditCtrl().SetSel(0,len);
278: GetEditCtrl().ReplaceSel(&null);
279: }
280: UpdateCursor(EndPos);
281: }
282:
283: void CAsir32guiView::UpdateCursor(int pos)
284: {
285: int s;
286: int len;
287:
288: if ( pos < 0 || pos > EndPos )
289: Beep();
290: else {
291: len = GetWindowTextLength();
292: CurrentPos = pos;
293: s = len-EndPos+CurrentPos;
294: GetEditCtrl().SetSel(s,s);
295: }
296: }
297:
298: void CAsir32guiView::ReplaceString(char *str)
299: {
300: UpdateCursor(0); DeleteChar(EndPos);
301: Insert(str,FALSE);
302: strcpy(Buffer,str);
303: EndPos = CurrentPos = strlen(str);
304: }
305:
306: void CAsir32guiView::Beep(void) {
307: ::MessageBeep(0xffffffff);
308: }
309:
310: void CAsir32guiView::Paste(void) {
1.8 noro 311: char buf[2*BUFSIZ];
312: const char *src;
313: char c;
314: int i,j,l;
315: HGLOBAL hClip;
316:
317: if ( asirgui_kind == ASIRGUI_MESSAGE ) {
318: Beep(); return;
319: }
1.2 noro 320:
1.8 noro 321: if ( OpenClipboard() == FALSE ) {
322: Beep(); return;
1.1 noro 323: }
324: hClip = GetClipboardData(CF_TEXT);
325: src = (const char *)::GlobalLock(hClip);
1.10 noro 326: if ( !src || (l=strlen(src)) >= sizeof(Buffer)-EndPos ) {
1.1 noro 327: ::CloseClipboard();
328: Beep(); return;
329: }
1.8 noro 330: for ( i = j = 0; i < l; i++ )
331: if ( (c = src[i]) != '\n' && c != '\r' )
332: buf[j++] = c;
333: buf[j] = 0;
1.1 noro 334: ::GlobalUnlock(hClip);
335: ::CloseClipboard();
336: GetEditCtrl().ReplaceSel(buf);
1.10 noro 337: l = strlen(buf);
338: for ( i = EndPos-1; i >= CurrentPos; i-- )
339: Buffer[i+l] = Buffer[i];
340: for ( j = 0, i = CurrentPos; j < l; j++, i++ )
341: Buffer[i] = buf[j];
342: EndPos += l; CurrentPos += l;
1.1 noro 343: }
344:
345: #define CTRL(c) (c)&0x1f
346:
347: void CAsir32guiView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
348: {
349: // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
350: char *exp_result;
351:
352: switch ( nChar ) {
353: case VK_LEFT:
354: UpdateCursor(CurrentPos-1); return;
355: case VK_RIGHT:
356: UpdateCursor(CurrentPos+1); return;
357: case VK_DELETE:
358: DeleteChar(1); return;
359: case VK_UP:
360: if ( (exp_result = prev_hist()) != 0 )
361: ReplaceString(exp_result);
362: else
363: Beep();
364: return;
365: case VK_DOWN:
366: if ( (exp_result = next_hist()) != 0 )
367: ReplaceString(exp_result);
368: else
369: Beep();
370: return;
371: default:
372: break;
373: }
374: CEditView::OnKeyDown(nChar, nRepCnt, nFlags);
375: }
376:
377: void CAsir32guiView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
378: {
379: // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
380: char *exp_result;
1.13 noro 381: char tmp[BUFSIZ];
1.27 noro 382: int i;
1.1 noro 383:
1.2 noro 384: if ( asirgui_kind == ASIRGUI_MESSAGE ) {
385: Beep(); return;
386: }
387:
1.1 noro 388: switch ( nChar ) {
389: case CTRL('M'): case CTRL('J'):
390: UpdateCursor(EndPos);
391: Buffer[EndPos] = 0;
392: reset_traverse();
393: if ( Buffer[0] == '!' ) {
394: exp_result = search_hist(Buffer+1);
395: if ( exp_result )
396: ReplaceString(exp_result);
397: else {
398: UpdateCursor(0); DeleteChar(EndPos); Beep();
399: }
400: return;
401: } else {
402: add_hist(Buffer);
403: put_line(Buffer);
404: ResetIndex();
405: nChar = CTRL('M');
406: }
407: break;
408: case CTRL('N'):
409: if ( (exp_result = next_hist()) != 0 )
410: ReplaceString(exp_result);
411: else
412: Beep();
413: return;
414: case CTRL('P'):
415: if ( (exp_result = prev_hist()) != 0 )
416: ReplaceString(exp_result);
417: else
418: Beep();
419: return;
420: case CTRL('A'):
421: UpdateCursor(0); return;
422: case CTRL('E'):
423: UpdateCursor(EndPos); return;
424: case CTRL('F'):
425: UpdateCursor(CurrentPos+1); return;
426: case CTRL('B'):
427: UpdateCursor(CurrentPos-1); return;
428: case CTRL('K'):
429: DeleteChar(EndPos-CurrentPos); return;
430: case CTRL('U'):
431: UpdateCursor(0); DeleteChar(EndPos); return;
432: case CTRL('D'):
433: DeleteChar(1); return;
434: case CTRL('H'):
435: if ( CurrentPos > 0 ) {
436: UpdateCursor(CurrentPos-1); DeleteChar(1);
437: } else
438: Beep();
439: return;
440: case CTRL('C'):
441: send_intr();
442: /* wake up the engine */
1.13 noro 443: tmp[0] = 0;
444: put_line(tmp);
1.1 noro 445: return;
1.27 noro 446: case CTRL('Y'):
447: Paste(); return;
448: case CTRL('I'):
449: return;
1.1 noro 450: default :
451: if ( nChar >= 0x20 && nChar < 0x7f )
452: PutChar(nChar);
453: else
454: Beep();
455: return;
456: }
457: CEditView::OnChar(nChar, nRepCnt, nFlags);
458: }
459:
460: void CAsir32guiView::OnLButtonUp(UINT nFlags, CPoint point)
461: {
462: // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
463: GetEditCtrl().Copy(); UpdateCursor(EndPos);
464: CEditView::OnLButtonUp(nFlags, point);
465: }
466:
467: void CAsir32guiView::OnRButtonDown(UINT nFlags, CPoint point)
468: {
469: // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
470: Paste();
471:
472: // CEditView::OnRButtonDown(nFlags, point);
473: }
474:
475: void CAsir32guiView::OnFileOpen()
476: {
477: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
478: char cmd[BUFSIZ*2]; // XXX
479: char *p;
1.3 noro 480: static char errmsg[BUFSIZ];
481: static char prevdir[BUFSIZ];
1.1 noro 482:
1.3 noro 483: if ( !prevdir[0] ) {
484: get_rootdir(prevdir,sizeof(prevdir),errmsg);
485: strcat(prevdir,"\\lib");
486: }
487:
488: _chdir(prevdir);
1.1 noro 489: CFileDialog fileDialog(TRUE);
1.14 noro 490: fileDialog.m_ofn.lpstrInitialDir = prevdir;
1.1 noro 491: if ( fileDialog.DoModal() == IDOK ) {
492: CString pathName = fileDialog.GetPathName();
493: sprintf(cmd,"load(\"%s\");",pathName);
494: for ( p = cmd; *p; p++ )
495: if ( *p == '\\' )
496: *p = '/';
497: put_line(cmd);
1.20 ohara 498: strcpy(cmd,pathName);
499: p = strrchr(cmd,'\\');
1.3 noro 500: if ( p ) {
501: *p = 0;
1.20 ohara 502: strcpy(prevdir,cmd);
1.3 noro 503: }
1.1 noro 504: }
505: }
1.29 ohara 506:
1.21 ohara 507: void CAsir32guiView::viewHtmlHelp(char *help)
508: {
1.23 ohara 509: char *helpfile;
1.29 ohara 510: char fmt[] = "%s\\%shelp.chm";
511: const char *dir = get_helpdir();
512: helpfile = (char *)malloc(sizeof(fmt) + strlen(dir) + strlen(help));
513: sprintf(helpfile,fmt,dir,help);
1.21 ohara 514: #if _MSC_VER < 1300
515: /* Visual C++ 6.0 */
516: ::HtmlHelp(NULL, helpfile, HH_DISPLAY_TOPIC, 0);
1.23 ohara 517: #else
518: CWinApp *top = AfxGetApp();
519: top->SetHelpMode(AFX_HELP_TYPE::afxHTMLHelp);
520: if (top->m_pszHelpFilePath) {
521: free((void*)top->m_pszHelpFilePath);
522: }
523: top->m_pszHelpFilePath = helpfile;
524: HtmlHelp(HH_DISPLAY_TOPIC, 0);
1.21 ohara 525: #endif
526: }
1.1 noro 527:
1.32 ! ohara 528: void CAsir32guiView::viewWebHelp(char *key)
! 529: {
! 530: char *base="http://www.math.kobe-u.ac.jp/OpenXM/Current/doc/";
! 531: char *url = (char *)malloc(strlen(base)+strlen(key)+1);
! 532: sprintf(url,"%s%s",base,key);
! 533: ShellExecute(NULL,"open",url,NULL,NULL,SW_SHOWNORMAL);
! 534: free(url);
! 535: }
! 536:
1.1 noro 537: void CAsir32guiView::OnAsirhelp()
538: {
1.32 ! ohara 539: const char *lang = get_locale_lang_iso639();
! 540: if(strcmp(lang,"ja")==0) {
! 541: viewWebHelp("index-doc-ja.html");
! 542: }else {
! 543: viewWebHelp("index-doc.html");
! 544: }
1.1 noro 545: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.32 ! ohara 546: // viewHtmlHelp("asir");
1.1 noro 547: }
548:
549: void CAsir32guiView::OnFileLog()
550: {
551: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
552: if ( !Logging ) {
553: CFileDialog fileDialog(TRUE);
554: if ( fileDialog.DoModal() == IDOK ) {
555: CString logfile = fileDialog.GetPathName();
556: Logfp = fopen(logfile,"ab");
557: if ( Logfp ) {
558: LogStart = GetWindowTextLength();
559: Logging = 1;
560: }
561: }
562: } else {
563: const char *buf;
564: buf = LockBuffer();
565: fwrite(buf+LogStart,1,strlen(buf)-LogStart,Logfp);
566: UnlockBuffer();
567: fclose(Logfp);
568: Logging = 0;
569: }
570: }
571:
572: void CAsir32guiView::OnUpdateFileLog(CCmdUI* pCmdUI)
573: {
574: // TODO: この位置に command update UI ハンドラ用のコードを追加してください
575: if ( Logging )
576: pCmdUI->SetCheck(1);
577: else
578: pCmdUI->SetCheck(0);
579: }
580:
581: void CAsir32guiView::OnEditPaste()
582: {
583: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
584: Paste();
1.3 noro 585: }
586:
1.9 noro 587: void CAsir32guiView::UpdateMetrics()
588: {
589: TEXTMETRIC tm;
590: RECT r;
591:
592: GetEditCtrl().GetRect(&r);
593: CDC *pDC = GetDC();
594: pDC->SelectObject(GetFont());
595: pDC->GetTextMetrics(&tm);
596: MaxLineLength = (r.right-r.left)/tm.tmAveCharWidth-1;
597: }
598:
1.3 noro 599: void CAsir32guiView::OnFont()
600: {
601: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.26 ohara 602: INT_PTR ret;
1.9 noro 603: LOGFONT lf;
604:
605: GetFont()->GetLogFont(&lf);
606: CFontDialog fd(&lf,CF_EFFECTS | CF_SCREENFONTS | CF_FIXEDPITCHONLY);
1.3 noro 607: static CFont *f = 0;
608:
609: ret = fd.DoModal();
610: if ( ret == IDOK ) {
611: fd.GetCurrentFont(&lf);
612: if ( f )
613: delete f;
614: f = new CFont;
615: f->CreateFontIndirect(&lf);
616: SetFont(f);
1.9 noro 617: UpdateMetrics();
1.3 noro 618: }
619: }
620:
621: int CAsir32guiView::OnCreate(LPCREATESTRUCT lpCreateStruct)
622: {
623: if (CEditView::OnCreate(lpCreateStruct) == -1)
624: return -1;
625:
626: // TODO: この位置に固有の作成用コードを追加してください
1.9 noro 627:
1.3 noro 628: LOGFONT logFont; memset(&logFont, 0, sizeof(LOGFONT));
629: logFont.lfHeight = 20;
630: logFont.lfCharSet = DEFAULT_CHARSET;
631: strcpy(logFont.lfFaceName, "Terminal");
632: CFont *f = new CFont;
633: f->CreateFontIndirect(&logFont);
634: SetFont(f);
1.9 noro 635: UpdateMetrics();
1.3 noro 636: GetEditCtrl().LimitText(nMaxSize);
1.9 noro 637: GetEditCtrl().SetTabStops(m_nTabStops);
1.3 noro 638:
639: return 0;
1.6 noro 640: }
641:
642: void CAsir32guiView::OnContribhelp()
643: {
644: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 645: viewHtmlHelp("cman");
1.6 noro 646: }
647:
1.11 noro 648: void CAsir32guiView::OnSize(UINT nType, int cx, int cy)
649: {
650: CEditView::OnSize(nType, cx, cy);
651:
652: // TODO: この位置にメッセージ ハンドラ用のコードを追加してください
653: UpdateMetrics();
654: }
655:
656: void CAsir32guiView::OnDsolv()
657: {
658: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 659: viewHtmlHelp("dsolv");
1.11 noro 660: }
661:
662: void CAsir32guiView::OnGnuplot()
663: {
664: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 665: viewHtmlHelp("gnuplot");
1.11 noro 666: }
667:
668: void CAsir32guiView::OnOkdiff()
669: {
670: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 671: viewHtmlHelp("ok_diff");
1.11 noro 672: }
673:
674: void CAsir32guiView::OnOkdmodule()
675: {
676: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 677: viewHtmlHelp("ok_dmodule");
1.11 noro 678: }
679:
680: void CAsir32guiView::OnOm()
681: {
682: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 683: viewHtmlHelp("om");
1.11 noro 684: }
685:
686: void CAsir32guiView::OnPfpcoh()
687: {
688: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 689: viewHtmlHelp("pfpcoh");
1.11 noro 690: }
691:
692: void CAsir32guiView::OnPlucker()
693: {
694: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 695: viewHtmlHelp("plucker");
1.11 noro 696: }
697:
698: void CAsir32guiView::OnSm1()
699: {
700: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 701: viewHtmlHelp("sm1");
1.11 noro 702: }
703:
704: void CAsir32guiView::OnTigers()
1.6 noro 705: {
1.11 noro 706: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 707: viewHtmlHelp("tigers");
1.9 noro 708: }
709:
1.11 noro 710: void CAsir32guiView::OnTodoparametrize()
1.9 noro 711: {
1.11 noro 712: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1.21 ohara 713: viewHtmlHelp("todo_parametrize");
1.1 noro 714: }
1.16 noro 715:
1.24 noro 716: void CAsir32guiView::OnNoromatrix()
717: {
718: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
719: viewHtmlHelp("noro_matrix");
720: }
721:
722: void CAsir32guiView::OnNoromwl()
723: {
724: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
725: viewHtmlHelp("noro_mwl");
726: }
727:
1.25 noro 728: void CAsir32guiView::OnNoropd()
729: {
730: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
731: viewHtmlHelp("noro_pd");
732: }
733:
1.24 noro 734: void CAsir32guiView::OnNnndbf()
735: {
736: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
737: viewHtmlHelp("nn_ndbf");
738: }
739:
1.25 noro 740: void CAsir32guiView::OnNstwistedlog()
741: {
742: // TODO: この位置にコマンド ハンドラ用のコードを追加してください
743: viewHtmlHelp("ns_twistedlog");
744: }
745:
1.16 noro 746: BOOL CAsir32guiView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
747: {
748: // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
749:
750: BOOL ret = CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
1.26 ohara 751: FILE *fp = NULL;
1.17 noro 752: char *temp;
1.31 ohara 753: char hndname[_MAX_PATH];
1.17 noro 754:
1.30 noro 755: if ( asirgui_kind == ASIRGUI_MAIN ) {
756: if ( temp = getenv("TEMP") ) {
757: sprintf(hndname,"%s\\asirgui.hnd", temp);
758: fp = fopen(hndname,"w");
759: if ( fp ) {
760: fprintf(fp,"%d",(unsigned int)theView->m_hWnd);
761: fclose(fp);
762: }
1.28 ohara 763: }
764: }
1.16 noro 765: return ret;
766: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>