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