00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00036
00037 #include "SO3SCOL.h"
00038
00039
00040 #include "../SO3Material/SO3Compositor.h"
00041 #include "../SO3Material/SO3Material.h"
00042
00043
00044 #include "../SO3PhysicGraph/CollisionTools.h"
00045
00046
00047 #include "../SO3Renderer/SO3Viewport.h"
00048 #include "../SO3Renderer/SO3Window.h"
00049 #include "../SO3Renderer/SO3Root.h"
00050 #include "../SO3Renderer/SO3FlashControl.h"
00051
00052
00053 #include "../SO3SceneGraph/SO3Camera.h"
00054 #include "../SO3SceneGraph/SO3Entity.h"
00055 #include "../SO3SceneGraph/SO3Scene.h"
00056
00058 extern int BUFFER_MOUSEDOWN_EVENT;
00059 extern int BUFFER_MOUSEUP_EVENT;
00060 extern int BUFFER_MOUSEDCLICK_EVENT;
00061 extern int BUFFER_WHEEL_EVENT;
00062 extern int BUFFER_MOUSEMOVE_EVENT;
00063 extern int BUFFER_SIZE_EVENT;
00064 extern int BUFFER_CLOSE_EVENT;
00065 extern int BUFFER_DROP_EVENT;
00066 extern int BUFFER_DESTROY_EVENT;
00067 extern int BUFFER_KEYDOWN_EVENT;
00068 extern int BUFFER_KEYUP_EVENT;
00069 extern HWND hwndScol;
00070
00071
00072 extern int SO3BUFFER;
00073
00074 int bufferSetReflexes(mmachine m)
00075 {
00076 int tmp_res;
00077
00078
00079
00080 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Mouse Click")));
00081 CHECK(MMpush(m, MMget(m, 2)));
00082 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinClick")));
00083 Minterpreter(m);
00084
00085
00086
00087
00088 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Mouse UnClick")));
00089 CHECK(MMpush(m, MMget(m, 2)));
00090 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinUnclick")));
00091 Minterpreter(m);
00092
00093
00094
00095
00096 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Mouse DClick")));
00097 CHECK(MMpush(m, MMget(m, 2)));
00098 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinDClick")));
00099 Minterpreter(m);
00100
00101
00102 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Drop")));
00103 CHECK(MMpush(m, MMget(m, 2)));
00104 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinDropFile")));
00105 Minterpreter(m);
00106
00107
00108
00109
00110 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer KeyDown")));
00111 CHECK(MMpush(m, MMget(m, 2)));
00112 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinKeydown")));
00113 Minterpreter(m);
00114
00115
00116
00117
00118 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer KeyUp")));
00119 CHECK(MMpush(m, MMget(m, 2)));
00120 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinKeyup")));
00121 Minterpreter(m);
00122
00123
00124
00125
00126 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Mouse Move")));
00127 CHECK(MMpush(m, MMget(m, 2)));
00128 CHECK(MMpush(m, Msearchinsyspak(m, "_CBcursorMove")));
00129 Minterpreter(m);
00130
00131
00132 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Mouse Wheel")));
00133 CHECK(MMpush(m, MMget(m, 2)));
00134 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinWheel")));
00135 Minterpreter(m);
00136
00137
00138 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Size")));
00139 CHECK(MMpush(m, MMget(m, 2)));
00140 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinSize")));
00141 Minterpreter(m);
00142
00143
00144
00145
00146 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Close")));
00147 CHECK(MMpush(m, MMget(m, 2)));
00148 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinClose")));
00149 Minterpreter(m);
00150
00151
00152
00153
00154 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Focus")));
00155 CHECK(MMpush(m, MMget(m, 2)));
00156 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinFocus")));
00157 Minterpreter(m);
00158
00159
00160
00161
00162 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer KillFocus")));
00163 CHECK(MMpush(m, MMget(m, 2)));
00164 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinKillFocus")));
00165 Minterpreter(m);
00166
00167
00168
00169
00170 CHECK(MMpush(m, Msearchinsyspak(m, "RFL buffer Destroy")));
00171 CHECK(MMpush(m, MMget(m, 2)));
00172 CHECK(MMpush(m, Msearchinsyspak(m, "_CBwinDestroy")));
00173 Minterpreter(m);
00174 return 0;
00175 }
00176
00179 int RetrieveMWin(mmachine m, WindowHandle windowHwnd)
00180 {
00181 int p;
00182 if((p=OBJfindTH(m, OBJtypebyname("OBJTYPWINDOW"), (int)windowHwnd))==NIL)
00183 return NIL;
00184
00185 return MMfetch(m, p, OFFOBJMAG);
00186 }
00187
00190 int SetFocusMWin(mmachine m, WindowHandle windowHwnd)
00191 {
00192 int tmp_res;
00193 if(RetrieveMWin(m, windowHwnd)==NIL)
00194 MMechostr(MSKDEBUG, "Window is NIL!! \n");
00195
00196 CHECK(MMpush(m, RetrieveMWin(m, windowHwnd)));
00197 CHECK(MMpush(m, Msearchinsyspak(m, "_SETfocus")));
00198 Minterpreter(m);
00199 MMpull(m);
00200 return 0;
00201 }
00202
00209 int _METHODbufferMouseClick(mmachine m)
00210 {
00211 #ifdef SO3_DEBUG
00212 MMechostr(MSKDEBUG, "_METHODbufferMouseClick\n");
00213 #endif
00214 int ogreWin, btn, x, y, flags;
00215
00216 if((ogreWin=MMget(m,3))==NIL)
00217 {
00218 m->pp += 3;
00219 MMset(m, 0, NIL);
00220 return 0;
00221 }
00222
00223 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00224 btn=MTOI(MMpull(m));
00225 y=MTOI(MMpull(m));
00226 x=MTOI(MMpull(m));
00227
00228 flags=((int)(GetKeyState(VK_SHIFT)>>8) &1?MK_SHIFT:0)|
00229 ((int)(GetKeyState(VK_CONTROL)>>8)&1?MK_CONTROL:0)|
00230 ((int)(GetKeyState(VK_LBUTTON)>>8)&1?MK_LBUTTON:0)|
00231 ((int)(GetKeyState(VK_RBUTTON)>>8)&1?MK_RBUTTON:0)|
00232 ((int)(GetKeyState(VK_MBUTTON)>>8)&1?MK_MBUTTON:0);
00233
00234 MMOUSE mResult;
00235 if(!scolRoot->O3HikariManager->focusControl(x, y))
00236 {
00237
00238 mResult.raycast = window->RayCast(x, y);
00239
00240
00241 SFlashControl* flashControl = 0;
00242 if (mResult.raycast.material != 0)
00243 flashControl = mResult.raycast.scene->GetFlashControl(mResult.raycast.material);
00244
00245
00246 if(flashControl != 0)
00247 flashControl->injectMouseDown((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00248 }
00249 else
00250 scolRoot->O3HikariManager->injectMouseDown(btn);
00251
00252
00253 mResult.x = x;
00254 mResult.y = y;
00255 mResult.index = btn;
00256 mResult.flags = flags;
00257
00258
00259 if(mResult.raycast.scene != 0)
00260 mResult.raycast.scene->lastResult = mResult;
00261
00262
00263 SetFocusMWin(m, window->GetWindowHandle());
00264 SendMessage(hwndScol, BUFFER_MOUSEDOWN_EVENT, (int)window, (LPARAM)&mResult);
00265 return 0;
00266 }
00267
00268
00275 int _METHODbufferMouseUnClick(mmachine m)
00276 {
00277 #ifdef SO3_DEBUG
00278 MMechostr(MSKDEBUG, "_METHODbufferMouseUnClick\n");
00279 #endif
00280 int ogreWin, btn, x, y, flags;
00281
00282 if((ogreWin=MMget(m,3))==NIL)
00283 {
00284 m->pp += 3;
00285 MMset(m, 0, NIL);
00286 return 0;
00287 }
00288
00289 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00290 btn=MTOI(MMpull(m));
00291 y=MTOI(MMpull(m));
00292 x=MTOI(MMpull(m));
00293
00294 flags=((int)(GetKeyState(VK_SHIFT)>>8) &1?MK_SHIFT:0)|
00295 ((int)(GetKeyState(VK_CONTROL)>>8)&1?MK_CONTROL:0)|
00296 ((int)(GetKeyState(VK_LBUTTON)>>8)&1?MK_LBUTTON:0)|
00297 ((int)(GetKeyState(VK_RBUTTON)>>8)&1?MK_RBUTTON:0)|
00298 ((int)(GetKeyState(VK_MBUTTON)>>8)&1?MK_MBUTTON:0);
00299
00300 MMOUSE mResult;
00301 if(!scolRoot->O3HikariManager->isPointOverHikari(x,y) )
00302 {
00303
00304 mResult.raycast = window->RayCast(x, y);
00305
00306
00307 SFlashControl* flashControl = 0;
00308 if (mResult.raycast.material != 0)
00309 flashControl = mResult.raycast.scene->GetFlashControl(mResult.raycast.material);
00310
00311
00312 if(flashControl != 0)
00313 flashControl->injectMouseUp((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00314 }
00315 else
00316 scolRoot->O3HikariManager->injectMouseUp(btn);
00317
00318
00319 mResult.x = x;
00320 mResult.y = y;
00321 mResult.index = btn;
00322 mResult.flags = flags;
00323
00324
00325 if(mResult.raycast.scene != 0)
00326 mResult.raycast.scene->lastResult = mResult;
00327
00328 SendMessage(hwndScol, BUFFER_MOUSEUP_EVENT, (int)window, (LPARAM)&mResult);
00329 return 0;
00330 }
00331
00332
00339 int _METHODbufferMouseWheel(mmachine m)
00340 {
00341 #ifdef SO3_DEBUG
00342 MMechostr(MSKDEBUG, "_METHODbufferMouseWheel\n");
00343 #endif
00344 int ogreWin, btn, x, y, flags;
00345
00346 if((ogreWin=MMget(m, 4))==NIL)
00347 {
00348 m->pp += 4;
00349 MMset(m, 0, NIL);
00350 return 0;
00351 }
00352
00353 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00354 flags=MTOI(MMpull(m));
00355 int t=MTOI(MMpull(m));
00356 y=MTOI(MMpull(m));
00357 x=MTOI(MMpull(m));
00358 int scroll = t*120;
00359
00360 flags=((int)(GetKeyState(VK_SHIFT)>>8) &1?MK_SHIFT:0)|
00361 ((int)(GetKeyState(VK_CONTROL)>>8)&1?MK_CONTROL:0)|
00362 ((int)(GetKeyState(VK_LBUTTON)>>8)&1?MK_LBUTTON:0)|
00363 ((int)(GetKeyState(VK_RBUTTON)>>8)&1?MK_RBUTTON:0)|
00364 ((int)(GetKeyState(VK_MBUTTON)>>8)&1?MK_MBUTTON:0);
00365
00366 MMOUSE mResult;
00367 scolRoot->O3HikariManager->injectMouseWheel(scroll);
00368
00369
00370 mResult.x = x;
00371 mResult.y = y;
00372 mResult.scroll = t;
00373 mResult.flags = flags;
00374
00375 SendMessage(hwndScol, BUFFER_WHEEL_EVENT, (int)window, (LPARAM)&mResult);
00376 return 0;
00377 }
00378
00379
00386 int _METHODbufferMouseDClick(mmachine m)
00387 {
00388 #ifdef SO3_DEBUG
00389 MMechostr(MSKDEBUG, "_METHODbufferMouseDClick\n");
00390 #endif
00391 int ogreWin, btn, x, y;
00392
00393 if((ogreWin=MMget(m,3))==NIL)
00394 {
00395 m->pp += 3;
00396 MMset(m, 0 ,NIL);
00397 return 0;
00398 }
00399 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00400 btn=MTOI(MMpull(m));
00401 y=MTOI(MMpull(m));
00402 x=MTOI(MMpull(m));
00403
00404 MMOUSE mResult;
00405 if(!scolRoot->O3HikariManager->focusControl(x, y))
00406 {
00407
00408 mResult.raycast = window->RayCast(x, y);
00409
00410
00411 SFlashControl* flashControl = 0;
00412 if (mResult.raycast.material != 0)
00413 flashControl = mResult.raycast.scene->GetFlashControl(mResult.raycast.material);
00414
00415
00416 if(flashControl != 0)
00417 {
00418 flashControl->injectMouseDown((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00419 flashControl->injectMouseUp((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00420 flashControl->injectMouseDown((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00421 flashControl->injectMouseUp((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00422 }
00423 }
00424 else
00425 {
00426 scolRoot->O3HikariManager->injectMouseDown(btn);
00427 scolRoot->O3HikariManager->injectMouseUp(btn);
00428 scolRoot->O3HikariManager->injectMouseDown(btn);
00429 scolRoot->O3HikariManager->injectMouseUp(btn);
00430 }
00431
00432
00433 mResult.x = x;
00434 mResult.y = y;
00435 mResult.index = btn;
00436
00437
00438
00439 if(mResult.raycast.scene != 0)
00440 mResult.raycast.scene->lastResult = mResult;
00441
00442 SendMessage(hwndScol, BUFFER_MOUSEDCLICK_EVENT, (int)window, (LPARAM)&mResult);
00443 return 0;
00444 }
00445
00446
00453 int _METHODbufferMouseMove(mmachine m)
00454 {
00455 #ifdef SO3_DEBUG
00456 MMechostr(MSKDEBUG, "_METHODbufferMouseMove\n");
00457 #endif
00458 int ogreWin, btn, x, y, flags;
00459
00460 ogreWin=MMget(m, 3);
00461 if(ogreWin==NIL)
00462 {
00463 m->pp += 3;
00464 MMset(m, 0, NIL);
00465 return 0;
00466 }
00467
00468 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00469 btn=MTOI(MMpull(m));
00470 y=MTOI(MMpull(m));
00471 x=MTOI(MMpull(m));
00472
00473 MMOUSE mResult;
00474 if(!scolRoot->O3HikariManager->isPointOverHikari(x, y))
00475 {
00476
00477 mResult.raycast = window->RayCast(x, y);
00478
00479
00480 SFlashControl* flashControl = 0;
00481 if (mResult.raycast.material != 0)
00482 flashControl = mResult.raycast.scene->GetFlashControl(mResult.raycast.material);
00483
00484
00485 if(flashControl != 0)
00486 flashControl->injectMouseMove((int)(mResult.raycast.faceData.uvResult.x * flashControl->width),(int)(mResult.raycast.faceData.uvResult.y * flashControl->height), btn);
00487 }
00488
00489
00490
00491 scolRoot->O3HikariManager->injectMouseMove(x, y, btn, false);
00492
00493
00494 mResult.x = x;
00495 mResult.y = y;
00496 mResult.state = btn;
00497
00498
00499
00500 if(mResult.raycast.scene != 0)
00501 mResult.raycast.scene->lastResult = mResult;
00502
00503 SendMessage(hwndScol, BUFFER_MOUSEMOVE_EVENT, (int)window, (LPARAM)&mResult);
00504 return 0;
00505 }
00506
00507
00514 int _METHODbufferKeyDown(mmachine m)
00515 {
00516 int ogreWin,btn,x,y,flags;
00517 if((ogreWin=MMget(m,2))==NIL)
00518 {
00519 m->pp += 2;
00520 MMset(m,0,NIL);
00521 return 0;
00522 }
00523 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00524 int vcode=MTOI(MMpull(m));
00525 int key=MTOI(MMpull(m));
00526 LRESULT result;
00527 MKEYBOARD* mKeyBoardResult = new MKEYBOARD();
00528 mKeyBoardResult->key = key;
00529 mKeyBoardResult->vcode = vcode;
00530 SendMessage(hwndScol, BUFFER_KEYDOWN_EVENT, (int)window,(LPARAM)mKeyBoardResult);
00531 return 0;
00532 }
00533
00534
00541 int _METHODbufferKeyUp(mmachine m)
00542 {
00543 int ogreWin,btn,x,y,flags;
00544 if((ogreWin=MMget(m,1))==NIL)
00545 {
00546 m->pp += 1;
00547 MMset(m,0,NIL);
00548 return 0;
00549 }
00550 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00551 int key=MTOI(MMpull(m));
00552
00553 LRESULT result;
00554 MKEYBOARD* mKeyBoardResult = new MKEYBOARD();
00555 mKeyBoardResult->key = key;
00556 SendMessage( hwndScol, BUFFER_KEYUP_EVENT, (int)window,(LPARAM)mKeyBoardResult);
00557 return 0;
00558 }
00559
00560
00567 int _METHODbufferSize(mmachine m)
00568 {
00569 int ogreWin, btn, x, y, flags;
00570 if((ogreWin=MMget(m,2))==NIL)
00571 {
00572 m->pp += 2;
00573 MMset(m,0,NIL);
00574 return 0;
00575 }
00576 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00577 int w=MTOI(MMpull(m));
00578 int h=MTOI(MMpull(m));
00579 return 0;
00580 }
00581
00582
00589 int _METHODbufferDrop(mmachine m)
00590 {
00591 int ogreWin;
00592 if((ogreWin=MMget(m,3))==NIL)
00593 {
00594 m->pp += 3;
00595 MMset(m,0,NIL);
00596 return 0;
00597 }
00598 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00599 int tuple = MTOP(MMpull(m));
00600 int x=MTOI(MMpull(m));
00601 int y=MTOI(MMpull(m));
00602 LRESULT result;
00603 MWIN* mWinResult = new MWIN();
00604 mWinResult->y = y;
00605 mWinResult->x = x;
00606 mWinResult->ptofile = tuple;
00607 SendMessage( hwndScol, BUFFER_DROP_EVENT, (int)window,(LPARAM)mWinResult);
00608 return 0;
00609 }
00610
00611
00618 int _METHODbufferClose(mmachine m)
00619 {
00620 int ogreWin,btn,x,y,flags;
00621 if((ogreWin=MMget(m,0))==NIL)
00622 {
00623 MMset(m,0,NIL);
00624 return 0;
00625 }
00626 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00627 SendMessage( hwndScol, BUFFER_CLOSE_EVENT, (int)window,(LPARAM)NULL);
00628
00629 return 0;
00630 }
00631
00632
00639 int _METHODbufferFocus(mmachine m)
00640 {
00641 int ogreWin;
00642 ogreWin=MMget(m,0);
00643 if(ogreWin==NIL)
00644 {
00645 MMset(m,0,NIL);
00646 return 0;
00647 }
00648 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00649 if(window)
00650 SetFocusMWin(m, window->GetWindowHandle());
00651
00652 if(window->lastOne)
00653 window->lastOne->focus();
00654 return 0;
00655 }
00656
00657
00664 int _METHODbufferKillFocus(mmachine m)
00665 {
00666 int ogreWin,btn,x,y,flags;
00667 if((ogreWin=MMget(m,0))==NIL)
00668 {
00669 MMset(m,0,NIL);
00670 return 0;
00671 }
00672 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00673 scolRoot->O3HikariManager->defocusAll();
00674
00675
00676 return 0;
00677 }
00678
00679
00686 int _METHODbufferDestroy(mmachine m)
00687 {
00688 int ogreWin,btn,x,y,flags;
00689 if((ogreWin=MMget(m,0))==NIL)
00690 {
00691 MMset(m,0,NIL);
00692 return 0;
00693 }
00694 SWindow* window = (SWindow*)MMfetch(m, MTOP(ogreWin), 0);
00695 SendMessage( hwndScol, BUFFER_DESTROY_EVENT, (int)window,(LPARAM)NULL);
00696
00697 return 0;
00698 }
00699
00700
00702 #define CALLMETHOD(m,s) { \
00703 _METHODbuffer##s(m); \
00704 MMpull(m); \
00705 return 0;}
00706
00707
00709 int RFLbufferMouseClick(mmachine m) CALLMETHOD(m,MouseClick)
00710 int RFLbufferMouseUnClick(mmachine m) CALLMETHOD(m,MouseUnClick)
00711 int RFLbufferMouseDClick(mmachine m) CALLMETHOD(m,MouseDClick)
00712 int RFLbufferMouseWheel(mmachine m) CALLMETHOD(m,MouseWheel)
00713 int RFLbufferMouseMove(mmachine m) CALLMETHOD(m,MouseMove)
00714 int RFLbufferKeyDown(mmachine m) CALLMETHOD(m,KeyDown)
00715 int RFLbufferKeyUp(mmachine m) CALLMETHOD(m,KeyUp)
00716 int RFLbufferSize(mmachine m) CALLMETHOD(m,Size)
00717 int RFLbufferDrop(mmachine m) CALLMETHOD(m,Drop)
00718 int RFLbufferClose(mmachine m) CALLMETHOD(m,Close)
00719 int RFLbufferFocus(mmachine m) CALLMETHOD(m,Focus)
00720 int RFLbufferKillFocus(mmachine m) CALLMETHOD(m,KillFocus)
00721 int RFLbufferDestroy(mmachine m) CALLMETHOD(m,Destroy)
00722
00723
00727 #define NBWINDOWPKG 26
00728
00729
00733 char* WINDOWname [NBWINDOWPKG] =
00734 {
00735 "_METHODbufferMouseClick",
00736 "_METHODbufferMouseUnClick",
00737 "_METHODbufferMouseDClick",
00738 "_METHODbufferMouseWheel",
00739 "_METHODbufferMouseMove",
00740 "_METHODbufferKeyDown",
00741 "_METHODbufferKeyUp",
00742 "_METHODbufferSize",
00743 "_METHODbufferDrop",
00744 "_METHODbufferClose",
00745 "_METHODbufferFocus",
00746 "_METHODbufferKillFocus",
00747 "_METHODbufferDestroy",
00748
00749 "RFL buffer Mouse Click",
00750 "RFL buffer Mouse UnClick",
00751 "RFL buffer Mouse DClick",
00752 "RFL buffer Mouse Wheel",
00753 "RFL buffer Mouse Move",
00754 "RFL buffer KeyDown",
00755 "RFL buffer KeyUp",
00756 "RFL buffer Size",
00757 "RFL buffer Drop",
00758 "RFL buffer Close",
00759 "RFL buffer Focus",
00760 "RFL buffer KillFocus",
00761 "RFL buffer Destroy"
00762
00763 };
00764
00765
00769 int (*WINDOWFunc[NBWINDOWPKG])(mmachine m)=
00770 {
00771 _METHODbufferMouseClick,
00772 _METHODbufferMouseUnClick,
00773 _METHODbufferMouseDClick,
00774 _METHODbufferMouseWheel,
00775 _METHODbufferMouseMove,
00776 _METHODbufferKeyDown,
00777 _METHODbufferKeyUp,
00778 _METHODbufferSize,
00779 _METHODbufferDrop,
00780 _METHODbufferClose,
00781 _METHODbufferFocus,
00782 _METHODbufferKillFocus,
00783 _METHODbufferDestroy,
00784
00785 RFLbufferMouseClick,
00786 RFLbufferMouseUnClick,
00787 RFLbufferMouseDClick,
00788 RFLbufferMouseWheel,
00789 RFLbufferMouseMove,
00790 RFLbufferKeyDown,
00791 RFLbufferKeyUp,
00792 RFLbufferSize,
00793 RFLbufferDrop,
00794 RFLbufferClose,
00795 RFLbufferFocus,
00796 RFLbufferKillFocus,
00797 RFLbufferDestroy
00798 };
00799
00800
00804 int WINDOWnarg [NBWINDOWPKG] =
00805 {
00806 4,
00807 4,
00808 4,
00809 4,
00810 3,
00811 3,
00812 2,
00813 3,
00814 4,
00815 2,
00816 1,
00817 1,
00818 2,
00819
00820 5,
00821 5,
00822 5,
00823 5,
00824 4,
00825 4,
00826 3,
00827 4,
00828 5,
00829 3,
00830 2,
00831 2,
00832 3
00833 };
00834
00835
00839 char* WINDOWType[NBWINDOWPKG]=
00840 {
00841 "fun [SO3_BUFFER I I I] SO3_BUFFER",
00842 "fun [SO3_BUFFER I I I] SO3_BUFFER",
00843 "fun [SO3_BUFFER I I I] SO3_BUFFER",
00844 "fun [SO3_BUFFER I I I I] SO3_BUFFER",
00845 "fun [SO3_BUFFER I I] SO3_BUFFER",
00846 "fun [SO3_BUFFER I I] SO3_BUFFER",
00847 "fun [SO3_BUFFER I] SO3_BUFFER",
00848 "fun [SO3_BUFFER I I] SO3_BUFFER",
00849 "fun [SO3_BUFFER I I [P r1]] SO3_BUFFER",
00850 "fun [SO3_BUFFER] SO3_BUFFER",
00851 "fun [SO3_BUFFER] SO3_BUFFER",
00852 "fun [SO3_BUFFER] SO3_BUFFER",
00853 "fun [SO3_BUFFER] SO3_BUFFER",
00854
00855 "fun [ObjWin SO3_BUFFER I I I] ObjWin",
00856 "fun [ObjWin SO3_BUFFER I I I] ObjWin",
00857 "fun [ObjWin SO3_BUFFER I I I] ObjWin",
00858 "fun [ObjWin SO3_BUFFER I I I] ObjWin",
00859 "fun [ObjWin SO3_BUFFER I I] ObjWin",
00860 "fun [ObjWin SO3_BUFFER I I] ObjWin",
00861 "fun [ObjWin SO3_BUFFER I] ObjWin",
00862 "fun [ObjWin SO3_BUFFER I I] ObjWin",
00863 "fun [ObjWin SO3_BUFFER I I [P r1]] ObjWin",
00864 "fun [ObjWin SO3_BUFFER] ObjWin",
00865 "fun [ObjWin SO3_BUFFER] ObjWin",
00866 "fun [ObjWin SO3_BUFFER] ObjWin",
00867 "fun [ObjWin SO3_BUFFER] ObjWin"
00868 };
00869
00870
00876 int SCOLloadWindow(mmachine m,cbmachine w)
00877 {
00878 return PKhardpak(m, "Window", NBWINDOWPKG, WINDOWname, WINDOWFunc, WINDOWnarg, WINDOWType);
00879 }
00880
00881
00886 int SCOLfreeWindow()
00887 {
00888 return 0;
00889 }
00890