home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Kyūkyoku!! X68000 Emulator
/
X68000Book.dat
/
mac
/
OLS
/
X68000
/
Ko-Window
/
kow142s.lzh
/
corlib
/
corlib.man
< prev
next >
Wrap
Text File
|
1995-12-05
|
51KB
|
1,298 lines
X680x0 Ko-Window ùpâëâCâuâëâè
corlib.a Version +14 è╓Éöâ}âjâàâAâï
Copyright 1991-1995 żè}î┤öÄöV(COR.)
0. é═é╢é▀é╔
é▒é╠âëâCâuâëâèé╔é═ê╚ë║é╠è╓ÉöîQé¬ö[é▀éτéΩé─éóé▄é╖üB
1. Sheet æÇì∞é╔è╓é╖éΘòΓÅòè╓Éö
2. âEâBâôâhâEè╓é╠âfü[â^Æ╩ÉM
3. âAâCâRâôë╗
4. âEâBâôâhâEâ^âCâgâïâAâNâZâX
5. âtâ@âCâïû╝è╓ÿA
6. ò╢ÄÜù±æÇì∞
7. Clip & Paste
8. EventInterval ùpÄ₧è╘è╟ù¥
9. âEâBâôâhâEâvâìâZâXè╓ÿA
10. ConsoleâëâCâuâëâè
11. â}âEâXâJü[â\âïè╓îW
12. DefGraphic âëâCâuâëâè(è╚ÆPâOâëâtâBâbâNâEâBâôâhâE)
13. Mg Window âëâCâuâëâè(è╚ÆPâEâBâôâhâEâIü[âvâô)
14. MgButton âëâCâuâëâè(è╚ÆPâvâbâVâàâ{â^âô)
15. MgInput âëâCâuâëâè(è╚ÆPìsôⁿù═)
16. Gpos âëâCâuâëâè(Graphicâ|âWâVâçâôè╟ù¥)
17. Dialog âëâCâuâëâè
18. é╗é╠æ╝âEâBâôâhâEè╓ÿA
é▒éΩéτé╠âëâCâuâëâèé≡ÄgéñÄ₧é═ corlib.h é≡âCâôâNâïü[âhé╡é─ë║é│éóüB
1. Sheet æÇì∞é╔è╓é╖éΘòΓÅòâëâCâuâëâè
int SheetGetSize( fp, sp )
----------------------------------------------------------------------------
FILE *fp; âtâ@âCâïâ|âCâôâ^
Sheet *sp; Ælé≡ò╘é╖âoâbâtâ@ sp->h, sp->v, sp->hword é╔Ælé≡ò╘é╖
âtâ@âCâïé⌐éτòKùvé╚ Sheet âTâCâYé≡ô╛é▄é╖üBû▀éΦÆlé═òKùvé╚âÅü[âhÉöüAé┬é▄éΦ
sp->v * sp->hword é┼é╖üB
----------------------------------------------------------------------------
void SheetLoad( fp, sp )
----------------------------------------------------------------------------
FILE *fp; âtâ@âCâïâ|âCâôâ^
Sheet *sp; Ælé≡ò╘é╖âoâbâtâ@ sp->buf1, sp->buf2 é╔âoâbâtâ@é≡ò╘é╖
âtâ@âCâïé⌐éτâoâbâtâ@é╔ Sheet âfü[â^é≡ô╟é▌ì₧é▌é▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[LOAD]
Sheet sp;
int size;
size= SheetGetSize( fp, &sp );
sp.buf2= ( sp.buf1= MALLOC( size*sizeof(short)*2 ) )+size;
SheetLoad( fp, &sp );
[SAVE]
SheetSave( fp, &sp, mode );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
void SheetSave( fp, sp, mode, name )
----------------------------------------------------------------------------
FILE *fp; âtâ@âCâïâ|âCâôâ^
Sheet *sp; âtâ@âCâïé╔Åæé½Åoé╖âfü[â^
int mode; mode=0:Source mode=1:Include
char *name; Åæé½ì₧é▐âfü[â^é╠û╝æO
âoâbâtâ@é╠ Sheet âfü[â^é≡âtâ@âCâïé╔Åæé½Åoé╡é▄é╖üB
----------------------------------------------------------------------------
void SheetCut( sp, cp, x, y )
----------------------------------------------------------------------------
Sheet *sp; î│é╠âfü[â^
Sheet *cp; É╪éΦÅoé╖âoâbâtâ@
int x, y; É╪éΦÅoé╖ì╢Åπé╠ì└òW
Sheet âfü[â^é╠öCê╙é╠ê╩Æué⌐éτüAöCê╙é╠æσé½é│é╠ Sheet é≡ĵéΦÅoé╡é▄é╖üBcp->h,
cp->v, cp->word é╔é═É╪éΦÅoé╖ëµæ£é╠æσé½é│é≡É▌ÆΦé╡üAcp->buf1, cp->buf2 é╔É╪
éΦÅoé╖ëµæ£é╠æσé½é│é╔ìçéφé╣é─âoâbâtâ@é≡ùpê╙é╡é─é⌐éτî─é╤Åoé╖òKùvé¬éáéΦé▄é╖üB
----------------------------------------------------------------------------
2. âEâBâôâhâEè╘é╠âfü[â^ô]æù
void UserSendOperation( wp, info, data, buffer )
----------------------------------------------------------------------------
WindowID wp; é▒é╠âïü[â`âôé≡Ägùpé╖éΘâEâBâôâhâEé╠ ID (NULLé┼éαéµéó)
EventInfo *info; âCâxâôâgâoâbâtâ@é╠âAâhâîâX
int data; UserPaste/UserString/UserStrings/UserSheet
void *buffer; ù^éªéΘâfü[â^é╠âAâhâîâX
ÄwÆΦé╡é╜âfü[â^é≡ EventUser é╔é╠é╣é─üAâ}âEâXé┼ÄwÆΦé╡é╜æ╝é╠âEâBâôâhâEé╔ô]æù
é╡é▄é╖üBé▒é╠é╞é½ wp é┼ù^éªé╜âEâBâôâhâEé╔é═âCâxâôâgé═æùÉMé│éΩé▄é╣é±(Æ╩ÅφÄ⌐
ò¬Ä⌐Ég)üBdata é╔é═ EventInfo é╠âüâôâo ComData, buffer é╔é═ ComBuf é╔æèôûé╖
éΘôαùeé¬ôⁿéΦé▄é╖üBïîè╓Éöû╝é═ SendData() é┼é╖üBè╓Éöû╝é═é╟é┐éτé┼î─é╤Åoé╡é─éα
ì\éóé▄é╣é±üBwp é╔ NULL é≡ù^éªé╜ÅΩìçé═Ä⌐ò¬Ä⌐Égé╔éαâCâxâôâgé¬æùÉMé│éΩéΘë┬ö\
ɽé¬éáéΘé▒é╞é╔Æìê╙é╡é─ë║é│éóüB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[UserString]
UserSendOperation( wp, info, UserString, "Tensousuru mojiretu." );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
void UserSendExec( exec, cmd, str )
----------------------------------------------------------------------------
char *exec; âCâxâôâgé≡æùéΦé╜éóâvâìâOâëâÇ
char *cmd; ïNô«é╖éΘÅΩìçé╠âRâ}âôâhâIâvâVâçâô
char *str; æùÉMé╖éΘò╢ÄÜù±
exec é┼ÄwÆΦé╡é╜âvâìâOâëâÇé¬æ╢ì▌é╖éΩé╬üAò╢ÄÜù± str é≡ EventUser, UserString
é┼æùÉMé╡é▄é╖üBéαé╡âvâìâOâëâÇé¬ïNô«é│éΩé─éóé╚é»éΩé╬üAcmd é╞ str é≡ê°Éöé╔é╡é─
âvâìâOâëâÇé≡ïNô«é╡é▄é╖üBâvâìâOâëâÇû╝é╔é═òKé╕ègÆúÄq .win é▄é┼ù^éªé─ë║é│éóüB
âCâxâôâgé≡æùÉMé╡é╜ÅΩìçé═ TRUE é≡üAâvâìâOâëâÇïNô«é≡é╡é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄
é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
UserSendExec( "view.win", "-f12", "denden.doc" );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int UserSendPaste( wp, info )
----------------------------------------------------------------------------
WindowID wp; âCâxâôâgé≡æùÉMé╖é╫é½WINDOWé╠ID(Æ╩ÅφÄ⌐ò¬Ä⌐Ég)
EventInfo *info;
ClipBoard é╠ÆåÉgé≡ UserPaste âCâxâôâgé╞é╡é─æùéΦé▄é╖üBâ|âbâvâAâbâvâüâjâàü[é╠
Åêù¥é┼ Paste é≡ìséóé╜éóÅΩìç(wp=Ä⌐ò¬Ä⌐Ég)üAé▄é╜é═âEâBâôâhâEâ}âlü[âWââü[é┼æ╝
é╠âEâBâôâhâEé╔ Paste é≡ìséóé╜éóÅΩìç(wp=öCê╙é╠âEâBâôâhâEID)é╔Ägéóé▄é╖üBû▀éΦ
Ælé═ WindowSendEvent() é╠Ælé┼é╖üBæùÉMé┼é½é╜ÅΩìçé═ TRUE é┼é½é╚é⌐é┴é╜ÅΩìçé═
FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
3. âAâCâRâôë╗
void IconEnt( wp, title, attr, font )
----------------------------------------------------------------------------
WindowID wp; Window ID
char *title; ICON Å≤æ╘é┼ò\Īé╖éΘò╢ÄÜù±
int attr; title é≡ò\Īé╖éΘâAâgâèârâàü[âg
int font; title é≡ò\Īé╖éΘâtâHâôâgâTâCâY ( 12/16/24 )
wp é┼ÄwÆΦé╡é╜âEâBâôâhâEé≡âAâCâRâôë╗é╡é▄é╖üBÆåé╔ò╢ÄÜé≡ò\Īé╖éΘé╛é»é╠ï╔é▀é─
âVâôâvâïé╚éαé╠é┼é╖üBé╗é╠æπéφéΦòíÄGé╚ÄΦæ▒é½é╚é╡é╔æªÄgéñé▒é╞é¬é┼é½é▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(ÄûæOé╔ EventIconifyON é╔é╡é─é¿é¡òKùvé¬éáéΘ)
case EventIconify:
IconEnt( wp, "IconTitle", AttrDefault, 12 );
return TRUE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
4. âEâBâôâhâEâ^âCâgâïé╓é╠âAâNâZâX
char *TitleGetAddress( wp )
----------------------------------------------------------------------------
WindowID wp; Window ID ( WindowTitleOpen é╡é╜éαé╠é╠é▌ )
TITLE WINDOW é╠â^âCâgâïò╢ÄÜù±âAâhâîâXé≡ô╛é▄é╖üBû▀éΦÆlé═é╗é╠âAâhâîâXé┼é╖üB
wp é¬ TitleWindow é┼é╚éóÅΩìçé═ NULL é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
char *TitleSetLabel( wp, label )
----------------------------------------------------------------------------
WindowID wp; Window ID ( WindowTitleOpen é╡é╜éαé╠é╠é▌ )
char *label; ÉVé╡éóò╢ÄÜù±
TITLE WINDOW é╠â^âCâgâïò╢ÄÜù±é≡É▌ÆΦé╡Æ╝é╡é▄é╖üBû▀éΦÆlé═ TitleGetAddress é╞
ô»é╢é┼É▌ÆΦé╡é╜âëâxâïâoâbâtâ@é╠âAâhâîâXé╔é╚éΦé▄é╖üBé▒é╠è╓Éöé═É▌ÆΦÄ₧é╔ôαòöé┼
EventRedraw é≡ö¡É╢é╡é▄é╖üBé╜é╛é╡ wp é¬ TitleWindow é⌐é╟éñé⌐â`âFâbâNé╡é─éó
é▄é╣é±é╠é┼üATitleWindow ê╚èOé┼é═é▒é╠è╓Éöé≡ÉΓæ╬é╔Ägéφé╚éóé┼ë║é│éóüB
----------------------------------------------------------------------------
5. âtâ@âCâïû╝è╓ÿA
char *PathGetFullName( name )
----------------------------------------------------------------------------
char *name; âtâ@âCâïû╝
ôné│éΩé╜âtâ@âCâïû╝é≡âïü[âgé⌐éτé╠âtâïâpâXû╝é╔ò╧ìXé╡é▄é╖üBû▀éΦÆlé═ô╛é╜âpâXû╝
é≡ôWèJé╡é╜ static ù╠êµé╓é╠â|âCâôâ^é┼éáéΘé▒é╞é╔Æìê╙é╡é─ë║é│éóüBîïë╩é≡Ägùpé╖
éΘÄ₧é═üAò╩é╠âoâbâtâ@é╔âRâsü[é╡é╜îπÅæé½è╖éªéΘé╚é╟é╠Åêù¥é¬òKùvé┼é╖üB
âEâBâôâhâEÅπé┼é═âJâîâôâgâfâBâîâNâgâèé╠èTöOé¬₧Bûåé╚é╠é┼üAâAâvâèâPü[âVâçâôé┼
é═é┼é½éΘé╛é»âtâïâpâXû╝é┼è╟ù¥é╖éΘéµéñé╔é╡é─ë║é│éóüB
----------------------------------------------------------------------------
char *PathGetFullName2( buf, name )
----------------------------------------------------------------------------
char *buf; âoâbâtâ@
char *name; âtâ@âCâïû╝
PathGetFullName()é╞ô»êΩé┼é╖é¬üAstatic é╓é╠ù╠êµé≡ò╘é│é╕é╔ôWèJé╡é╜âpâXé≡âoâb
âtâ@é╔èiö[é╡é▄é╖üBû▀éΦÆlé═ buf é┼é╖üB
----------------------------------------------------------------------------
void PathGetExecDir( buf )
----------------------------------------------------------------------------
char *buf; âpâXû╝èiö[âoâbâtâ@
Ä⌐ò¬é¬ïNô«é│éΩé╜âfâBâîâNâgâèû╝é≡ÄwÆΦâoâbâtâ@é╔ô╛é▄é╖üBâfâBâîâNâgâèû╝é╠ì┼îπ
é╔é═òKé╕âfâBâîâNâgâèé╠ïµÉ╪éΦüu\üvé¬é┬éóé─éóé▄é╖üB
----------------------------------------------------------------------------
6. ò╢ÄÜù±æÇì∞
void StringGetEsc( str, ptr )
----------------------------------------------------------------------------
char *str; îïë╩é≡èiö[é╖éΘâoâbâtâ@
char *ptr; ò╧è╖éαé╞é╠ò╢ÄÜù±
'\' é┼Äné▄éΘâGâXâPü[âvò╢ÄÜé╠ôWèJé≡ìséóé▄é╖üBâGâXâPü[âvò╢ÄÜé═ê╚ë║é╠Æ╩éΦé┼é╖üB
îïë╩é═ str é╔èiö[é╡é▄é╖üB
\n ëⁿìs LF (0x0a)
\r ò£ïA CR (0x0d)
\xXX 16ÉiÉö
\\ ò╢ÄÜ '\'
----------------------------------------------------------------------------
7. âNâèâbâvüòâyü[âXâg
void *ClipSetOperation( wp, info, cb, max, x, y, sc, color, font )
----------------------------------------------------------------------------
WindowID wp; Clip ò\Īé╖éΘâEâBâôâhâEé╠ ID
EventInfo *info; âCâxâôâgÅεò±
char **cb; âXâNâèü[âôâCâüü[âWé╠âAâhâîâX
int max; ì┼æσò\ĪâëâCâô
int x; Clip Åêù¥ê╩Æué▄é┼é╠âIâtâZâbâgì└òW
int y; Clip Åêù¥ê╩Æué▄é┼é╠âIâtâZâbâgì└òW
int sc; ìsûûé╠âXâyü[âXìφÅ£âtâëâO
int color; ö╜ô]Ä₧é╠âJâëü[ÄwÆΦ
int font; ò\ĪâtâHâôâgâTâCâY(Ä└ì█é═ìsè╘âXâeâbâv)
âEâBâôâhâEôαòöé╠öCê╙é╠âeâLâXâgé╔æ╬é╡é─üAâ}âEâXé╔éµéΘ clip Åêù¥é≡ìséóé▄é╖üB
èeìsé═ '\0' é┼ÅIéφéΘò╢ÄÜù±é┼üAé╗é╠â|âCâôâ^özù±é≡ cb é╔ôné╡é▄é╖üBÅêù¥é≡ìséñ
ìsÉöé≡ max é╔ù^éªé▄é╖üBsc é¬ TRUE é╠ÅΩìçé═üAìsûûé╠âXâyü[âXé≡Å£ïÄé╡é╜é╠é┐
ClipBoard é╔É▌ÆΦé╡é▄é╖üBÉ▄éΦï╚é░éτéΩé╜ìsé═î┤æÑé╞é╡é─Åêù¥é┼é½é▄é╣é±üBâtâHâô
âgâTâCâYé═Ä└ì█é═ìsè╘é╠âXâeâbâvâhâbâgÉöé┼éáéΘé╜é▀üAòKé╕é╡éα 10,12,16,24 é┼éá
éΘòKùvé═éáéΦé▄é╣é±üBé▒é╠è╓Éö1é┬é┼üACommand.win, view.win, kf.win ôÖé╞ô»é╢
clip Åêù¥é¬é┼é½éΘéµéñé╔é╚éΦé▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
case EventMouseSwitch:
if( info->LeftON ){
ClipSetOperation( wp, info, screen, 25, 0, 0, TRUE, 1, 12 );
return TRUE;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
void *ClipSetSimpleOperation( wp, info, cb, max, sc, font )
----------------------------------------------------------------------------
WindowID wp; Clip ò\Īé╖éΘâEâBâôâhâEé╠ ID
EventInfo *info; âCâxâôâgÅεò±
char **cb; âXâNâèü[âôâCâüü[âWé╠âAâhâîâX
int max; ì┼æσò\ĪâëâCâô
int sc; ìsûûé╠âXâyü[âXìφÅ£âtâëâO
int font; ò\ĪâtâHâôâgâTâCâY(ìsè╘âXâeâbâv)
âEâBâôâhâEôαé╠öCê╙é╠âeâLâXâgé╔æ╬é╖éΘ Clip Åêù¥é≡ìséóé▄é╖üBClipSetOperation()
é╠ê°Éöé≡ x= 0, y= 0, color= 1 é╔é╡é╜éαé╠é╞ô»êΩé┼é╖üBî▌è╖ɽé╠é╜é▀é╔Äcé│éΩé─
éóéΘè╓Éöé┼é╖üBÆ╩Åφé═ ClipSetOperation() é≡Ägùpé╡é─ë║é│éóüB
----------------------------------------------------------------------------
int ClipGetKeyboard( wp, info )
----------------------------------------------------------------------------
WindowID wp; âCâxâôâgé≡æùÉMé╖é╫é½WINDOWé╠ID
EventInfo *info;
Paste é│éΩé╜âfü[â^é≡üAEventKey é╔ò╧è╖é╡é─Ä⌐ò¬Ä⌐Égé╔ì─æùé╡é▄é╖üBEventUser Ä₧
é╔ùpéóé▄é╖üB1ò╢ÄÜûêé╠âCâxâôâgé╔ôWèJé│éΩéΘé╜é▀üAÄcöOé╚é¬éτéáé▄éΦî°ùªé╠ù╟éóÅê
ù¥é┼é═éáéΦé▄é╣é±üBEventUser Åêù¥é≡ìsé┴é╜Ä₧é═ TRUE é≡üAUserPaste ê╚èOé╠âCâx
âôâgé┼éáé┴é╜ÅΩìçé═ë╜éαé╣é╕é╔ FALSE é≡ò╘é╡é▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
case EventUser:
if( !ClipGetKeyboard( wp, info ) ){
switch( info->ComData ){
case UserStrings:
:
}
}
return TRUE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int ClipGetKeyboardAll( wp, info )
----------------------------------------------------------------------------
WindowID wp; âCâxâôâgé≡æùÉMé╖é╫é½WINDOWé╠ID
EventInfo *info;
EventUser é┼æùéτéΩé─é½é╜âfü[â^é≡üAEventKey é╔ò╧è╖é╡é─Ä⌐ò¬Ä⌐Égé╔ì─æùé╡é▄é╖üB
UserPaste, UserString, UserStrings é╠æSòöé≡Åêù¥é╡é▄é╖üBé▒éΩéτé═é╖é╫é─1ò╢ÄÜ
ûêé╠âCâxâôâgé╔ôWèJé│éΩéΘé╜é▀üAÄcöOé╚é¬éτéáé▄éΦî°ùªé╠ù╟éóÅêù¥é┼é═éáéΦé▄é╣é±üB
âCâxâôâgæùÉMÅêù¥é≡ìsé┴é╜Ä₧é═ TRUE é≡üAé╗éΩê╚èOé╠âCâxâôâgé┼éáé┴é╜ÅΩìçé═ë╜éα
é╣é╕é╔ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
8. Ä₧è╘Åêù¥
unsigned int IntervalTime( void )
----------------------------------------------------------------------------
X680x0 é≡ïNô«é╡é─é⌐éτé╠îoë▀Ä₧è╘é≡ 1/100 òbÆPê╩é┼ò╘é╡é▄é╖üBIOCS CALL é╔éáéΘ
$7f ONTIME é╞ô»é╢é┼é╖é¬üAôdî╣ ON é╠éáé╞ 24Ä₧è╘îoé┴é─éα 0 é╔û▀éτé╕Ælé═Åφé╔
æ¥ë┴é╡æ▒é»é▄é╖üBé╗é╠é╜é▀Ä₧è╘é≡é═é⌐éΘé╜é▀é╔üAÆPÅâé╚öΣèréΓë┴ÄZé≡ìséñé▒é╞é¬
é┼é½é▄é╖üBé╜é╛é╡24Ä₧è╘é╠ï½û┌é┼é═üAÄ₧è╘é╠ì╖ò¬é¬É│é╡éóîoë▀Ä₧è╘é╔é╚éτé╚éóÅΩ
ìçé¬éáéΦé▄é╖üB
----------------------------------------------------------------------------
int IntervalWait( wait, work )
----------------------------------------------------------------------------
unsigned int wait; æ╥Ä₧è╘ 1/100 òbÆPê╩
unsigned int *work; âÅü[âNùpâoâbâtâ@
ÄwÆΦé╡é╜Ä₧è╘é¬îoë▀é╡é╜é⌐é╟éñé⌐Æ▓é╫é▄é╖üBÄwÆΦÄ₧è╘ê╚Åπîoë▀é╡é─éóéΩé╬ TRUE é≡üA
é╗éñé┼é╚é»éΩé╬ FALSE é≡ò╘é╡é▄é╖üBêΩôx TRUE é≡ò╘é╖é╞âJâEâôâ^é═âèâZâbâgé│éΩ
îpæ▒é╡é▄é╖üBì─é╤ wait Ä₧è╘é╜é┬é╞ TRUE é≡ò╘é╡é▄é╖üBEventInterval é≡Ägé┴é╜âv
âìâOâëâÇé┼Ä₧è╘è╟ù¥é╔Ägùpé╖éΘé╞ò╓ùÿé┼é╖üBâÅü[âNùpâoâbâtâ@é═âåü[âUü[é¬ùpê╙é╡
é╚é»éΩé╬é╚éΦé▄é╣é±üBé▒éΩé≡éáéτé⌐é╢é▀ 0 é┼Åëè·ë╗é╡é─é¿é»é╬üAì┼Åëé╠î─é╤Åoé╡
Ä₧é╔òKé╕ TRUE é≡ò╘é╖éµéñé╔é╚éΦé▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static unsigned work; /* 3òbé╔êΩôxé╛é»Åêù¥é≡ìséñâïü[â`âô */
:
case EventInterval:
if( IntervalWait( 300, &work ) ){
.... Åêù¥
return TRUE;
}
return FALSE;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
9. âvâìâZâXè╓ÿA
é▒é▒é┼é╠âvâìâZâXé╞é═üAKo-Window Åπé┼è╟ù¥é│éΩéΘéαé╠é≡Äwé╡é▄é╖üB
int PidSearch( name, id )
----------------------------------------------------------------------------
char *name; îƒì⌡é╖éΘâvâìâOâëâÇû╝
int id; îƒì⌡é≡èJÄné╖éΘ pid ö╘ìå (ì┼Åëé═1é≡ÄwÆΦé╖éΘ)
âvâìâOâëâÇû╝é⌐éτ Ko-Window é╠âvâìâZâXé≡îƒì⌡é╡é▄é╖üBé▌é┬é⌐é┴é╜ pid é≡ò╘é╡é▄
é╖(PorcessID)üBâvâìâZâXé¬î⌐é┬é⌐éτé╚é»éΩé╬ 0 é≡ò╘é╡é▄é╖üBé▌é┬é⌐é┴é╜ pid+1
é≡ id é╔É▌ÆΦé╡é─ì─Ä└ìsé╖éΘé╞üAăîƒì⌡é¬é┼é½é▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
é╖é╫é─é╠ô»û╝é╠âvâìâZâXé≡Æ▓é╫éΘùß
for( pid= 0 ; pid= PidSearch( Name, pid+1 ) ;){
...
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int PidSendEvent( name, info, mode )
----------------------------------------------------------------------------
char *name; îƒì⌡é╖éΘâvâìâOâëâÇû╝
EventInfo *info; æùéΘâCâxâôâgÅεò±
int mode; break âtâëâO ( TRUE: break ON üA FALSE: break OFF )
âvâìâOâëâÇû╝é⌐éτ Ko-Window é╠âvâìâZâXé≡îƒì⌡é╡üAÄwÆΦé╠âCâxâôâgé≡æùÉMé╡é▄é╖üB
é▒é╠Ä₧é╗é╠âvâìâZâXé╔æ«é╖éΘâEâBâôâhâEæSòöé╔æùÉMé│éΩé▄é╖üBéαé╡ô»û╝é╠âvâìâOâë
âÇé¬òíÉöïNô«é│éΩé─éóéΘé╚éτé╬üAæSòöé╠âvâìâOâëâÇé╔âCâxâôâgé≡æùÉMé╡é▄é╖üBé╜é╛
é╡ mode é╔ TRUE é≡ÄwÆΦé╡é─é¿é¡é╞üAì┼Åëé╔î⌐é┬é⌐é┴é╜âvâìâOâëâÇé╔é╛é»âCâxâôâg
é≡æùÉMé╖éΘéµéñé╔é╚éΦé▄é╖üBû▀éΦÆlé═ WindowSendEventAll() é╠Ælé┼é╖üBæùÉMé┼é½
é╚é⌐é┴é╜ÅΩìçéαé╡é¡é═æùÉMé╡é╜âvâìâOâëâÇé¬âCâxâôâgé┼ FALSE é≡ò╘é╡é╜ÅΩìçé═üA
FALSE é¬ò╘éΦé▄é╖üB
----------------------------------------------------------------------------
10. âRâôâ\ü[âïâëâCâuâëâè
void *ConsoleOpen( void )
----------------------------------------------------------------------------
âEâBâôâhâEÅπé╠âRâôâ\ü[âïé╠æ╢ì▌é≡Æ▓é╫üAê╚ë║é╠ Console è╓Éöé≡ÄgéªéΘéµéñé╔é╡
é▄é╖üBû▀éΦÆlé═ struct WindowConsoleType é╓é╠â|âCâôâ^é┼üAâRâôâ\ü[âïé¬æ╢ì▌é╡
é╚éóÅΩìçé═ NULL é≡ò╘é╡é▄é╖é¬üAé▒éΩé≡âåü[âUü[é¬ê╙Ä»é╖éΘòKùvé═éáéΦé▄é╣é±üBâG
âëü[â`âFâbâNéαòsùvé┼é╖üBé▒é╠è╓Éöé≡ë╜ôxéαîJéΦò╘é╡î─é╤Åoé╡é─éαûΓæΦéáéΦé▄é╣é±üB
Close é╖éΘòKùvéαéáéΦé▄é╣é±üB
é▒é╠è╓Éöé═ ê╚ë║é╠ ConsolePrint() éΓ ConsoleChar() ôÖé≡Ägùpé╖éΘæOé╔òKé╕Ä└ìs
é╡é─é¿é¡òKùvé¬éáéΦé▄é╖üBConsoleOpen() é═éPâCâxâôâgÆPê╩é┼Ä└ìsé╡é▄é╖üBé┬é▄éΦüA
éóé┴é╜é±âCâxâôâgé≡èJò·é╡é─é╡é▄éñé╞üAConsole é¬ò┬é╢é─é╡é▄é┴é╜éΦïNô«é╡Æ╝é│éΩ
é─éóé╜éΦé╖éΘë┬ö\ɽé¬éáéΘé⌐éτé┼é╖üBòsê└é╚Ä₧é═üAConsolePrintü` é╠ôxé╔üAÆ╝æOé╔
ConsoleOpen() é≡æSòöé┬é»é─é¿éóé─ë║é│éóüB
----------------------------------------------------------------------------
void ConsolePrint( str )
----------------------------------------------------------------------------
char *str; Åoù═ò╢ÄÜù±
âRâôâ\ü[âïé╔ò╢ÄÜù±é≡Åoù═é╡é▄é╖üBÆ╝æOé╔ ConsoleOpen() é≡Ä└ìsé╡é─é¿é¡òKùvé¬
éáéΦé▄é╖üBâRâôâ\ü[âïé¬æ╢ì▌é╡é╚éóÅΩìçé═ë╜éαé╡é▄é╣é±üBé╚é¿üAâRâôâ\ü[âïæñé╠âv
âìâOâëâÇé═Æ╩Åφìsâoâbâtâ@âèâôâOé│éΩé─éóéΘé╠é¬òüÆ╩é┼é╖üBé╗é╠é╜é▀ëⁿìsâRü[âhé¬
Åoé─é½é─é═é╢é▀é─ëµû╩é╔î╗éΩé▄é╖é╠é┼Æìê╙é╡é─ë║é│éóüB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ConsoleOpen();
ConsolePrint( "DoDoon\r\n" );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
void ConsoleChar( code )
----------------------------------------------------------------------------
int code; Åoù═ò╢ÄÜ
âRâôâ\ü[âïé╔éPò╢ÄÜÅoù═é╡é▄é╖üBÆ╝æOé╔ ConsoleOpen() é≡Ä└ìsé╡é─é¿é¡òKùvé¬éá
éΦé▄é╖üBâRâôâ\ü[âïé¬æ╢ì▌é╡é╚éóÅΩìçé═ë╜éαé╡é▄é╣é±üBâRâôâ\ü[âïé¬ìsâoâbâtâ@âè
âôâOé│éΩé─éóéΘè╓îWÅπëⁿìsâRü[âhé¬Åoé─é¡éΘé▄é┼ëµû╩é╔é═î╗éΩé▄é╣é±é╠é┼Æìê╙é╡é─
ë║é│éóüB
----------------------------------------------------------------------------
void ConsolePrintf( fmt, arglist .. )
----------------------------------------------------------------------------
char *fmt; âtâHü[â}âbâgÅoù═ò╢ÄÜù±
âRâôâ\ü[âïé╔âtâHü[â}âbâgò╢ÄÜù±é≡Åoù═é╡é▄é╖üBprintf() ôÖé╞ô»é╢ÅæÄ«é¬Ägéªé▄
é╖üB(__fmtout Ägùp) Æ╝æOé╔ ConsoleOpen() é≡Ä└ìsé╡é─é¿é¡òKùvé¬éáéΦé▄é╖üBâR
âôâ\ü[âïé¬æ╢ì▌é╡é╚éóÅΩìçé═ë╜éαé╡é▄é╣é±üBâRâôâ\ü[âïé¬ìsâoâbâtâ@âèâôâOé│éΩ
é─éóéΘè╓îWÅπëⁿìsâRü[âhé¬Åoé─é¡éΘé▄é┼ëµû╩é╔é═î╗éΩé▄é╣é±é╠é┼Æìê╙é╡é─ë║é│éóüB
----------------------------------------------------------------------------
11. â}âEâXâJü[â\âïè╓îW
void MouseSetPattern( num, sp, offx, offy )
----------------------------------------------------------------------------
int num; ÆΦï`é╖éΘâ}âEâXâJü[â\âïâiâôâoü[
Sheet *sp; ÆΦï`âpâ^ü[âô
int offx; âJü[â\âïê╩Æué╓é╠âIâtâZâbâgX
int offy; âJü[â\âïê╩Æué╓é╠âIâtâZâbâgY
Sheet âfü[â^é≡â}âEâXâJü[â\âïé╞é╡é─ôoÿ^é╡é▄é╖üBSheet âfü[â^é═òKé╕ 16x16 dot
é╠âpâ^ü[âôé┼é╚é»éΩé╬é╚éΦé▄é╣é±üBnum é═ÆΦï`é╖éΘâ}âEâXâJü[â\âïé╠ö╘ìåé┼é╖üB
offx, offy é═üAâJü[â\âïê╩Æué╞âpâ^ü[âôì╢Åπì└òWé╞é╠é╕éΩé≡ÄwÆΦé╖éΘéαé╠é┼é╖üB
â}âEâXâJü[â\âïùpé╠ Sheet é═ Color0 é¬ôºû╛òöé┼é╖üBòKé╕ Color1 é╞ Color3 é╛
é»é┼âfâUâCâôé╡é─ë║é│éóüBColor2 é═Ägùpé┼é½é▄é╣é±üB
----------------------------------------------------------------------------
void MouseSetDefPat_TUKAMI()
----------------------------------------------------------------------------
â}âEâXâJü[â\âïé≡üuÄΦüvé╠î`é╔é╡é▄é╖üBé▒éΩé═éαé╞éαé╞ UserSendOperation() é¬
ôαòöé┼Ägéñé╜é▀é╔Ä¥é┴é─éóé╜âpâ^ü[âôé┼é╖üBêΩë₧èOòöé⌐éτéαÄgéªéΘéµéñâGâôâgâèé≡
É▌é»é▄é╡é╜üBê¼é┴é╜ÄΦé╠î`é┼üAâfü[â^é≡é┬é⌐é±é┼æ╝é╠âEâBâôâhâEé╓âhâëâbâOô]æùé╖
éΘÅΩìçé╔ùpéóé▄é╖üB
----------------------------------------------------------------------------
void MouseSetNormalPat()
----------------------------------------------------------------------------
î│é╠âpâ^ü[âôé╔û▀é╡é▄é╖üBIOCS CALL é╠ MS_SEL( 0 ) é╞ô»ôÖé┼é╖üB
----------------------------------------------------------------------------
12. âfâtâHâïâgâOâëâtâBâbâNâëâCâuâëâè
âOâëâtâBâbâNâEâBâôâhâEÄⁿéΦé╠Åêù¥é≡è╚ù¬ë╗é╖éΘé╜é▀é╔ì∞éτéΩé╜âëâCâuâëâèé┼é╖üB
void DefGraphicInit( gra, mode, sleep, palet )
----------------------------------------------------------------------------
DefGraphic *gra; DefGraphic ì\æóæ╠
int mode; ÉFâéü[âh( WindowAttrGraphic16/256/65536)
int (*sleep)(); SLEEPÆåé╠ò`ëµâïü[â`âô
unsigned short *palet; PALETèiö[ù╠êµé╠ɵô¬âAâhâîâX
âfâtâHâïâgâOâëâtâBâbâNâëâCâuâëâèé≡Åëè·ë╗é╡é▄é╖üBWindowSetGraphicMode() é≡
ôαòöé┼Ä└ìsé╡é▄é╖üBsleep é≡ NULL é╔é╖éΘé╞üAò`ëµâïü[â`âôî─é╤Åoé╡é═ìséφéΩé▄é╣
é±üBsleep é≡ô┴é╔ÄwÆΦé╡é╚éóÅΩìçé═âfâtâHâïâgÅêù¥é╞é╡é─ DefGraphicSleep é≡Äw
ÆΦé╡é─ë║é│éóüBpalet é≡ NULL é╔é╖éΘé╞âpâîâbâgÉ▌ÆΦé≡ìsé╚éóé▄é╣é±(65536ÉFâéü[
âhÄ₧é╚é╟)üBpalet é═ 16 ÉFâéü[âhé╠Ä₧é═ 16âZâbâg(32byte)üA256/65536ÉFâéü[âh
é╠Ä₧é═ 256âZâbâg(512byte)òKùvé┼é╖üB
SLEEP é╞éóéñé╠é═üAæ╝é╠âAâvâèé¬âAâNâeâBâué╔é╚é┴é─éóé─üAé╗é╠âAâvâèâPü[âVâçâô
é┼Ägùpé╖éΘâOâëâtâBâbâNâéü[âhé╞ê┘é╚éΘÅ≤æ╘é≡éóéóé▄é╖üBé▒é╠é╞é½é╗é╠âAâvâèâPü[
âVâçâôé═ò`ëµé≡ìsé╚éñé▒é╞é¬é┼é½é╚éóé╠é┼Åêù¥é≡ÆåÆfé╡é─éóéΘéφé»é┼é╖üB
EventGraphic é┼ëµû╩âéü[âhé╠ò╧ìXé¬Æméτé│éΩüAéαé╡Ä⌐ò¬é╠Ägùpé╖éΘâéü[âhé┼éáéΘ
é╚éτÅêù¥é≡ì─èJé╡é▄é╖üB(SLEEP Å≤æ╘é╠ë≡Å£)
palet é╔òWÅÇ (X680x0âfâtâHâïâg) é╠âpâîâbâgÆlé≡Ägùpé╡é╜éóÄ₧é═üAăé╠éQé┬é╠âV
âôâ{âïé≡Ägùpé╡é─ë║é│éóüB65536ÉFâéü[âhé╠é╞é½é═ NULL é≡ÄwÆΦé╡é▄é╖üB
16 ÉFâéü[âhÄ₧ DefGraphicPal16
256ÉFâéü[âhÄ₧ DefGraphicPal256
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DefGraphicInit( &gra, WindowAttrGraphic16, NULL, DefGraphicPal16 );
DefGraphicInit( &gra, WindowAttrGraphic256, NULL, DefGraphicPal256 );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int DefGraphicRedraw( gra, wp, info )
----------------------------------------------------------------------------
DefGraphic *gra; DefGrahic ì\æóæ╠
WindowID wp;
EventInfo *info;
âfâtâHâïâgâOâëâtâBâbâNâëâCâuâëâèé╠ò`ëµâ`âFâbâNé≡é╡é▄é╖üBEventRedraw é┼ì┼Åë
é╔î─é╤Åoé╡é─ë║é│éóüBéαé╡ SLEEP é╚éτ DefGraphicInit() é┼É▌ÆΦé╡é╜ SLEEP ò`ëµ
âïü[â`âôé≡Ä└ìsé╡é▄é╖üBsleep é╔ DefGraphicSleep é≡ÄwÆΦé╡é─éóé╜ÅΩìçé═âEâBâô
âhâEæSæ╠é≡âJâëü[1é┼ DrawSetClear() é╡é▄é╖üB
é╜é╛é╡ DefGraphicInit() é┼ sleep é╔ NULL é≡ÄwÆΦé╡é─éóé╜ÅΩìçé═é▒é╠Ä└ìsé═ìs
éφéΩé▄é╣é±üB
û▀éΦÆlé═ sleep é¬ NULL é╠ÅΩìçé═ FALSEüAé╗éΩê╚èOé═ TRUE é╔é╚éΦé▄é╖üB
----------------------------------------------------------------------------
void DefGraphicPalet( gra )
----------------------------------------------------------------------------
DefGraphic *gra;
âOâëâtâBâbâNâpâîâbâgé╠É▌ÆΦé≡ìséóé▄é╖üBDefGraphicInit() é┼ÄwÆΦé╡é╜âOâëâtâBâb
âNâpâîâbâgé╔Åëè·ë╗é╡é▄é╖üB
----------------------------------------------------------------------------
int DefGraphicEnt( gra, wp, info )
----------------------------------------------------------------------------
DefGraphic *gra;
WindowID wp;
EventInfo *info;
âfâtâHâïâgé╠âOâëâtâBâbâNâCâxâôâgÅêù¥é≡é╡é▄é╖üBEventGraphic, EventPop,
EventMove é┼é▒é╠è╓Éöé≡î─é╤Åoé╡é─ë║é│éóüB(êΩÅÅé╔î─é╤Åoé╡é┼é½é▄é╖) ôαòöé┼
DefGraphicInit() é┼ÄwÆΦé╡é─éóé╜ palet é≡É▌ÆΦé╖éΘÅΩìçé¬éáéΦé▄é╖üBpalet é¬
NULL é╠ÅΩìçé═é▒é╠É▌ÆΦé╡é▄é╣é±üBò╘éΦÆlé═òKé╕ TRUE é╔é╚éΦé▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static DefGraphic gra;
switch( info->option ){
case EventOpen:
DefGraphicInit( &gra, WindowAttrGraphic16, DefGraphicSleep, palet );
WindowSetAttr( wp, WindowAttrGraphic16 );
WindowSetEventAttr( wp, EventAttrDefault | EventGraphciON |
EventPopON | EventMoveON );
GposInit( wp );
WindowRedraw( wp );
return TRUE;
case EventRedraw:
if( !DefGraphicRedraw( &gra, wp, info ) ){
Ä└ì█é╠ò`ëµÅêù¥(âOâëâtâBâbâNëµû╩é≡Ägùpé┼é½éΘ)
}
DefGraphicPalet( &gra );
return TRUE;
case EventMove:
case EventPop:
case EventGraphic:
return DefGraphicEnt( &gra, wp, info );
: æ╝é╠ Event Åêù¥
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int DefGraphicCheck( gra )
----------------------------------------------------------------------------
DefGraphic *gra;
î╗ì▌ SLEEP Å≤æ╘é⌐é╟éñé⌐é≡Æ▓é╫é▄é╖(â}âNâì)üBSLEEP Ä₧é═ TRUE, é╗éñé┼é╚é»éΩé╬
FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
13. Mg âëâCâuâëâè
è╚ÆPé╔âvâìâOâëâÇé≡ì∞éΘé▒é╞é¬é┼é½éΘüAè╚ù¬ë╗âëâCâuâëâèé┼é╖üBé╜éóé╓é±ò╓ùÿé┼é╖
é¬üAé╗é╠ò¬òsùpé╚âïü[â`âôé¬æ╜Éöægé▌ì₧é▄éΩé─éóé─üAÄ└ì█é╠âAâvâèâPü[âVâçâôé╔Äd
Åπé░é╜ÅΩìçÄ└ìsé¿éµé╤âtâ@âCâïâTâCâYé╔éαû│æ╩é¬æ╜é¡é╚éΘé▒é╞é╔Æìê╙é╡é─ë║é│éóüB
é▄é╜üAÄgùpé╔éáé╜é┴é─é═üAòKé╕ WindowHeapSize é≡É▌ÆΦé╖éΘéµéñé╔é╡é─ë║é│éóüBé▒
é╠âïü[â`âôîQé═ HEAP é≡Å┴ö∩é╡é▄é╖üBÅ┴ö∩ù╩é═ÅΩìçé╔éµé┴é─ê┘é╚éΦé▄é╖üB
WindowID MgWindowDefaultOpen( x, y, h, v, title, mode, Exec )
----------------------------------------------------------------------------
int x, y, âEâBâôâhâEé≡èJé¡ê╩Æu
h, v; âEâBâôâhâEé≡èJé¡æσé½é│
char *title; â^âCâgâïò╢ÄÜù±
int mode; æ«É½
int (*Exec)(); âCâxâôâgÄ└ìsè╓Éö
ì┼éαè╚ÆPé╔âEâBâôâhâEé≡èJé¡é╜é▀é╠è╓Éöé┼é╖üBÄgéóò√é═Æ╩Åφé╠ WindowOpen() é╞ô»
é╢é┼é╖üBé╜é╛é╡üAÄwÆΦé╡é╜âCâxâôâgÄ└ìsè╓Éöé¬òKùvì┼Æßî└é╠âCâxâôâgé╔éα FALSE
é≡ò╘é╡é─é½é╜ÅΩìçüAôαòöé┼æπë┐Åêù¥é≡ìséóé▄é╖üBé╗é╠é╜é▀âCâxâôâgÄ└ìsâïü[â`âôé═
æσò¥é╔Å╚ù¬é╖éΘé▒é╞é¬é┼é½é▄é╖üB
ï╔Æ[é╚ÿbüAăé╠éµéñé╚âvâìâOâëâÇé╛é»é┼æªâEâBâôâhâEé¬èJé½é▄é╖üB(é▒éΩé┼æSòö)
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include "corlib.h"
EventExec()
{
return FALSE;
}
WindowMain()
{
MgWindowDefaultOpen( 10, 10, 200, 200, "Test", 0, EventExec );
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
é▒é╠è╓Éöé═ôαòöé┼ malloc() é╖éΘé╠é┼òKé╕ WindowHeapSize é≡É▌ÆΦé╡é─ë║é│éóüBùe
ù╩é═ì┼Æßé┼ 1Kbyte éαéáéΩé╬Å\ò¬é┼é╖üB
æ«É½ mode é╔é═üAWindowTitleOpen() é╞ô»ùlâ^âCâgâïâEâBâôâhâEé╠â{âbâNâXâXâCâb
â`ò└é╤é≡ÄwÆΦé╡é▄é╖üBé╜é╛é╡üAë╜éαÄwÆΦé╡é╚é¡é─éα( 0 é╠ÅΩìçé┼éα) Close|Push é═
ÄwÆΦé│éΩé╜éαé╠é╞î⌐é╚é╡é▄é╖üB
é▄é╜üAâOâëâtâBâbâNëµû╩é≡Ägùpé╖éΘâAâvâèé╠ÅΩìçüAé▒é╠æ«É½é╔ MgGraphic16,
MgGraphic256, MgGraphic65536 é╠éñé┐é╟éΩé⌐é≡ë┴éªé─ë║é│éóüB
âfâtâHâïâgé╠âCâxâôâgÅêù¥âïü[â`âôôαòöé┼ DefGraphic() âëâCâuâëâèé≡ŃÄΦé╔î─é╤
Åoé╡é▄é╖é╠é┼üAÆ╩Åφé═ê╙Ä»é╣é╕é╔âOâëâtâBâbâNÄgùpâAâvâèé≡ì∞éΘé▒é╞é¬é┼é½é▄é╖üB
û▀éΦÆlé═âIü[âvâôé╡é╜âEâBâôâhâEé╠ ID é┼é╖üB
----------------------------------------------------------------------------
WindowID MgWindowDefaultOpenArgs( x, y, h, v, title, argc, argv,
mode, Exec );
----------------------------------------------------------------------------
int x, y, âEâBâôâhâEé≡èJé¡âfâtâHâïâgê╩Æu
h, v; âEâBâôâhâEé≡èJé¡âfâtâHâïâgé╠æσé½é│
int argc; âvâìâOâëâÇé╠ arg Éö
char **argv; âvâìâOâëâÇé╠ arg âèâXâg
int mode; æ«É½
char *title; â^âCâgâïò╢ÄÜù±
int (*Exec)(); âCâxâôâgÄ└ìsè╓Éö
MgWindowDefaultOpen() é╔üAAnalyzeArgs() é≡éαægé▌ì₧é±é╛è╓Éöé┼é╖üBé▒éΩ1é┬é╛é»
é┼ WindowMain() é═è«îïé╡é▄é╖üBæ«É½é═ MgWindowDefaultOpen() é╞ô»é╢é┼é╖é¬üA
éαéñéPé┬ MgSwitchHV é≡ù^éªéΘé▒é╞é¬é┼é½é▄é╖üBÆ╩Åφé═ -x, -y âXâCâbâ`é╛é»î⌐é─
òKùvé╔ë₧é╢é─ x, y é≡Åæé½è╖éªé▄é╖é¬üAé▒é╠ MgSwitchHV é¬éáéΘÅΩìçé═ -h, -v âX
âCâbâ`éαÅêù¥é╡é▄é╖üBôαòöé┼ malloc() é╖éΘé╠é┼òKé╕ WindowHeapSize é╠É▌ÆΦé¬òK
ùvé┼é╖üBû▀éΦÆlé═âIü[âvâôé╡é╜âEâBâôâhâEé╠ ID é┼é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include "corlib.h"
EventExec( wp, info )
WindowID wp;
EventInfo *info;
{
if( info->option == EventRedraw ){
DrawBuf dbuf[20];
DrawSetClear( dbuf, 1 );
DrawSetSymbol( dbuf+1, 8, 8, "ò\Īé╖éΘé╛é»", AttrDefault, 16 );
WindowDraw( wp, dbuf, 2 );
return TRUE;
}
return FALSE;
}
WindowMain( argc, argv )
{
MgWindowDefaultOpenArgs( 10, 10, 200, 200, "Test", argc, argv,
Icon, EventExec );
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
é▒é╠éµéñé╔üAÄ⌐ò¬é┼ù~é╡éóâCâxâôâgé╛é»ïLÅqé╖éΩé╬üAé┐éßé±é╞âAâvâèé╔é╚éΦé▄é╖üB
----------------------------------------------------------------------------
void MgWindowSetClientData( wp, data, ptr )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
int data; É▌ÆΦé╖éΘâNâëâCâAâôâgâfü[â^
void *ptr; É▌ÆΦé╖éΘâNâëâCâAâôâgâ|âCâôâ^
MgLIB é┼âNâëâCâAâôâgâfü[â^é≡Ägùpé╖éΘé╜é▀é╠è╓Éöé┼é╖üBMgLIB é┼é═òKé╕é▒é╠è╓Éö
é┼âNâëâCâAâôâgâfü[â^é≡ÆΦï`é╡é╚é»éΩé╬é╚éΦé▄é╣é±üB
é▒é╠è╓Éöé═òKé╕âCâxâôâgÄ└ìsâïü[â`âôôαé┼Ägùpé╡é─ë║é│éóüBï∩æ╠ôIé╔é═ EventOpen
é¬êΩôxé┼éαÄ└ìsé│éΩé─é⌐éτé┼é╖üB
----------------------------------------------------------------------------
int MgWindowGetClientData( wp )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
MgWindowSetClientData() é┼ÆΦï`é╡é╜âNâëâCâAâôâgâfü[â^é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
void *MgWindowGetClientPointer( wp )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
MgWindowSetClientData() é┼ÆΦï`é╡é╜âNâëâCâAâôâgâ|âCâôâ^é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
WindowID MgWindowScrollOpen( x, y, h, v, title, maxh, maxv, mode, Exec )
----------------------------------------------------------------------------
int x, y, âEâBâôâhâEé≡èJé¡ê╩Æu
h, v; âEâBâôâhâEé≡èJé¡æσé½é│
char *title; â^âCâgâïò╢ÄÜù±
int maxh, âEâBâôâhâEé╠âXâNâìü[âïö═ê═üiëíò√îⁿì┼æσÆlüj
maxv; âEâBâôâhâEé╠âXâNâìü[âïö═ê═üiÅcò√îⁿì┼æσÆlüj
int mode; æ«É½
int (*Exec)(); âCâxâôâgÄ└ìsè╓Éö
âXâNâìü[âïâEâBâôâhâEé≡è╚ÆPé╔è╚ÆPé╔èJé¡é╜é▀é╠âëâCâuâëâèé┼é╖üBview.win é╠éµ
éñé╚âXâNâìü[âïâoü[òté½âEâBâôâhâEé≡èJé½é▄é╖üBèεû{ôIé╔é═ MgWindowDefaultOpen()
é╞ô»é╢Ägéóò√é┼é╖üBâ^âCâgâïâoü[é╔é═òKé╕âèâTâCâYâ{âbâNâXé¬é┬é½é▄é╖üBé▄é╜üAâEâB
âôâhâEëEë║é╠èpé═âèâTâCâYâ{âbâNâXé╞ô»é╢ô¡é½é╔é╚éΦé▄é╖üBé╜é╛é╡ò`ëµé╔âOâëâtâBâb
âNé═Ägéªé▄é╣é±üBôαòöé┼ malloc() é╖éΘé╠é┼òKé╕ WindowHeapSize é╠É▌ÆΦé¬òKùvé┼
é╖üBû▀éΦÆlé═âIü[âvâôé╡é╜âEâBâôâhâEé╠ ID é┼é╖üB
----------------------------------------------------------------------------
WindowID MgWindowScrollOpenArgs( x, y, h, v, title, argc, argv,
maxh, maxv, mode, Exec )
----------------------------------------------------------------------------
int x, y, âEâBâôâhâEé≡èJé¡ê╩Æu
h, v; âEâBâôâhâEé≡èJé¡æσé½é│
char *title; â^âCâgâïò╢ÄÜù±
int argc; âRâ}âôâhê°Éöé╠î┬Éö
char **argv; âRâ}âôâhê°ÉöâèâXâg
int maxh, âEâBâôâhâEé╠âXâNâìü[âïö═ê═üiëíò√îⁿì┼æσÆlüj
maxv; âEâBâôâhâEé╠âXâNâìü[âïö═ê═üiÅcò√îⁿì┼æσÆlüj
int mode; æ«É½
int (*Exec)(); âCâxâôâgÄ└ìsè╓Éö
MgWindowScrollOpen() é┼ê°ÉöÅêù¥é¬é┼é½éΘéµéñé╔é╡é╜éαé╠é┼é╖üB
MgWindowDefaultOpenArgs() ô»ùlé╠ÄwÆΦé¬é┼é½é▄é╖üBû▀éΦÆlé═âIü[âvâôé╡é╜âEâBâô
âhâEé╠ ID é┼é╖üB
----------------------------------------------------------------------------
14. MgButton âëâCâuâëâè
âvâbâVâàâ{â^âôé≡ê╡éñâëâCâuâëâèé┼é╖üBHEAP é≡Å┴ö∩é╖éΘé╠é┼ WindowHeapSize é╠
É▌ÆΦé¬òKùvé┼é╖üB
void MgButtonInit( mbp )
----------------------------------------------------------------------------
MgButton *mbp;
âvâbâVâàâ{â^âôì\æóæ╠é≡Åëè·ë╗é╡é▄é╖üBMgButtonSetü` è╓Éöé≡Ä└ìsé╖éΘæOé╔òKé╕é▒
é╠Åëè·ë╗é≡ìsé╚é┴é─é¿éóé─ë║é│éóüB
----------------------------------------------------------------------------
int MgButtonSet( mbp, x, y, h, v, num );
----------------------------------------------------------------------------
MgButton *mbp;
int x, y, h, v; â{â^âôé╠ê╩Æué╞æσé½é│
int num; é▒é╠â{â^âôé¬ëƒé│éΩé╜Ä₧é╔ò╘é╖Æl
âvâbâVâàâ{â^âôì\æóæ╠é╔â{â^âôé≡ÆΦï`é≡Æ╟ë┴é╡é▄é╖üBé▒é╠â{â^âôé═ÿgé╛é»é┼Æåé╔ë╜
éαò\Īé╡é▄é╣é±üBMgButtonOperation() è╓Éöé≡î─é╤Åoé╡é╜Ä₧üAé▒é╠â{â^âôé¬ëƒé│éΩ
é─éóéΩé╬ num é┼É▌ÆΦé╡é╜Ælé≡ò╘é╡é▄é╖üBé▒é╠è╓Éöé═üAâ{â^âôÆΦï`é¬Ä╕ösé╡é╜ÅΩìç
é═ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
int MgButtonSetSymbol( mbp, x, y, w, num, msg, attr, font )
----------------------------------------------------------------------------
MgButton *mbp;
int x, y; â{â^âôé╠ò\Īê╩Æu
int w; ò╢ÄÜù±(msg)é⌐éτÿgé▄é┼é╠âhâbâgÉö
int num; é▒é╠â{â^âôé¬ëƒé│éΩé╜Ä₧é╔ò╘é╖Æl
char *msg; â{â^âôôαòöé╔ò\Īé╖éΘò╢ÄÜù±
int attr; msgé≡ò\Īé╖éΘâAâgâèârâàü[âg
int font; msgé≡ò\Īé╖éΘâtâHâôâgâTâCâY
âvâbâVâàâ{â^âôì\æóæ╠é╔â{â^âôé≡ÆΦï`é≡Æ╟ë┴é╡é▄é╖üBÆåé╔ò╢ÄÜù±é≡ò\Īé╡é▄é╖üB
num é═ MgButtonOperation() è╓Éöé≡î─é╤Åoé╡é╜Ä₧üAé▒é╠â{â^âôé¬ëƒé│éΩé─éóé╜ÅΩ
ìçé╔ò╘é│éΩéΘÆlé┼é╖üBâ{â^âôé╠âTâCâYé═üAò╢ÄÜù±é╠Æ╖é│é╔éµé┴é─îêé▄éΦé▄é╖üBò╢ÄÜ
ù±é⌐éτÿgé▄é┼é╠âhâbâgÉöé≡ w é┼ÄwÆΦé╡é▄é╖üBò╢ÄÜù±é═üAstatic ù╠êµé╓é╠â|âCâôâ^
é┼é╚é»éΩé╬é╚éΦé▄é╣é±üBé▒é╠è╓Éöé═üAâ{â^âôÆΦï`é¬Ä╕ösé╡é╜ÅΩìçé═ FALSE é≡ò╘é╡
é▄é╖üB
----------------------------------------------------------------------------
int MgButtonSetSheet( mbp, x, y, num, shon, shoff )
----------------------------------------------------------------------------
MgButton *mbp;
int x, y; â{â^âôé╠ê╩Æu
int num; é▒é╠â{â^âôé¬ëƒé│éΩé╜Ä₧é╔ò╘é╖Æl
Sheet *shon, â{â^âôé¬ëƒé│éΩé╜Ä₧é╠ Sheet
*shoff; â{â^âôé¬ëƒé│éΩé─éóé╚éóÄ₧é╠ Sheet
âvâbâVâàâ{â^âôì\æóæ╠é╔â{â^âôé≡ÆΦï`é≡Æ╟ë┴é╡é▄é╖üBâ{â^âôé╠ò\Īé═âåü[âUü[é¬ù^
éªé╜ Sheet âpâ^ü[âôé╔éµé┴é─ìsé╚éóé▄é╖üBMgButtonOperation() è╓Éöé≡î─é╤Åoé╡
é╜Ä₧üAé▒é╠â{â^âôé¬ëƒé│éΩé─éóéΩé╬ num é┼É▌ÆΦé╡é╜Ælé≡ò╘é╡é▄é╖üBé▒é╠è╓Éöé═üA
â{â^âôÆΦï`é¬Ä╕ösé╡é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
int MgButtonSetToggle( mbp, x, y, h, v, num, sw )
----------------------------------------------------------------------------
MgButton *mbp;
int x, y, h, v; â{â^âôé╠ê╩Æué╞æσé½é│
int num; é▒é╠â{â^âôé¬ò╧ìXé│éΩé╜Ä₧é╔ò╘é╖Æl
int *sw; â{â^âôé╠Å≤æ╘é≡èiö[é╖éΘù╠êµé╓é╠â|âCâôâ^
âvâbâVâàâ{â^âôì\æóæ╠é╔âgâOâïâ{â^âôé╠ÆΦï`é≡Æ╟ë┴é╡é▄é╖üBé▒é╠â{â^âôé═ÿgé╛é»é┼
é╖é¬üAëƒé│éΩé╜ÅΩìçé╔ ON/OFF é≡É╪éΦæ╓éªéΘâgâOâïô«ì∞é≡é╡é▄é╖üBÆåé╔ë╜é⌐ò\Īé╡
é╜éóÅΩìçé═æ╝é╠ Draw û╜ù▀é╞ægé▌ìçéφé╣é─é╡éµéñé╡é─ë║é│éóüBMgButtonOperation()
è╓Éöé≡î─é╤Åoé╡é╜Ä₧üAé▒é╠â{â^âôé╠Å≤æ╘é¬ò╧ë╗é╡é╜éτ num é┼É▌ÆΦé╡é╜Ælé≡ò╘é╡é▄
é╖üBé▄é╜üAON/OFF é╠Å≤æ╘é═ *sw é╠ù╠êµé╔ TRUE or FALSE é╠Ælé┼èiö[é╡é▄é╖üB*sw
ù╠êµé╠Åëè·ë╗é═âåü[âUü[âAâvâèâPü[âVâçâôé┼ìsé╚é┴é─ë║é│éóüBé▒é╠è╓Éöé═üAâ{â^âô
ÆΦï`é¬Ä╕ösé╡é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
int MgButtonSetTouch( mbp, x, y, h, v, num )
----------------------------------------------------------------------------
MgButton *mbp;
int x, y, h, v; â{â^âôé╠ê╩Æué╞æσé½é│
int num; é▒é╠â{â^âôé¬ëƒé│éΩé╜Ä₧é╔ò╘é╖Æl
âvâbâVâàâ{â^âôì\æóæ╠é╔â^âbâ`â{â^âôÆΦï`é≡Æ╟ë┴é╡é▄é╖üBé▒é╠â{â^âôé═ÿgé╛é»é┼üA
Æåé╔ë╜éαò\Īé╡é▄é╣é±üBMgButtonOperation() è╓Éöé≡î─é╤Åoé╡é╜Ä₧üAé▒é╠â{â^âôé¬
ëƒé│éΩé─éóéΩé╬ num é┼É▌ÆΦé╡é╜Ælé≡ò╘é╡é▄é╖üBèOî⌐é═ MgButtonSet é╞ô»ùlé┼é╖üB
MgButtonSet é╠ò√é═â{â^âôé¬ëƒé│éΩé─é⌐éτùúé│éΩéΘé▄é┼ MgButtonOperation() é╠Åê
ù¥é═ò╘é┴é─é½é▄é╣é±é¬üAé▒éΩé═é╖é«ò╘éΦé▄é╖üBëƒé│éΩé╜éτé╖é«Åêù¥é≡ìséóé╜éóÅΩìç
é╔Ägéóé▄é╖üBé▒é╠è╓Éöé═üAâ{â^âôÆΦï`é¬Ä╕ösé╡é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
int MgButtonSetMenu( mdp, x, y, h, v, num, exec, opt )
----------------------------------------------------------------------------
MgButton *mbp;
int x, y, h, v; â{â^âôé╠ê╩Æué╞æσé½é│
int num; âIâvâVâçâôâRü[âhéP
int (*exec)();
int opt; âIâvâVâçâôâRü[âhéQ
âvâbâVâàâ{â^âôì\æóæ╠é╔âCâxâôâgâ{â^âôÆΦï`é≡Æ╟ë┴é╡é▄é╖üBâCâxâôâgâ{â^âôé≡É▌ÆΦ
é╡é▄é╖üBé▒é╠â{â^âôé═ÿgé╛é»é┼üAÆåé╔ë╜éαò\Īé╡é▄é╣é±üBëƒé│éΩéΘé╞üAexec é┼Äw
ÆΦé╡é╜è╓Éöé≡ wp, info, mdp, opt é╠ê°Éöé┼î─é╤Åoé╡é▄é╖üBexec è╓Éöé╠û▀éΦÆlé¬üA
é╗é╠é▄é▄â{â^âôé≡ëƒé╡é╜Ä₧é╠ò╘éΦÆlé╞é╚éΦé▄é╖üBùßéªé╬ exec âïü[â`âôé≡ăé╠éµéñ
é╔ÆΦï`é╡é─é¿é»é╬üAâüâjâàü[â{â^âôé╞é╡é─ï@ö\é╡é▄é╖üBopt é═òíÉöé╠âüâjâàü[é╠æI
æ≡é╚é╟üAâåü[âUü[é¬Ä⌐ùRé╔Ägùpé╖éΘé▒é╞é¬é┼é½é▄é╖üBé▒é╠è╓Éöé═üAâ{â^âôÆΦï`é¬Ä╕
ösé╡é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MenuButtonExec( wp, info, mdp, opt )
WindowID wp;
EventInfo *info;
MgButton *mdp;
int opt;
{
int menu, sx, sy;
WindowGetScreenPosition( wp, &sx, &sy );
menu= PopUpMenu( mdp->x1+sx, mdp->y2+sy, item, items, font );
return mdp->ret + menu;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
int MgButtonSetDraw( mbp, dbuf )
----------------------------------------------------------------------------
MgButton *mbp;
DrawBuf *dbuf;
âvâbâVâàâ{â^âôì\æóæ╠é⌐éτò`ëµÄΦæ▒é½é≡É▌ÆΦé╡é▄é╖üBÆΦï`é╡é╜â{â^âôé╠ò`ëµÄΦæ▒é½
é≡êΩïCé╔É▌ÆΦé╡é▄é╖üBû▀éΦÆlé═òKùvé╚ò`ëµÄΦæ▒é½é╠âXâeâbâvÉöé┼é╖üB1é┬é╠ mdp é╔
æ╜Éöâ{â^âôé═ÆΦï`é┼é½é▄é╖üBé╜é╛é╡üAò`ëµé═îπé⌐éτÆ╟ë┴é╡é╜ò√é¬Éµé╔ìsé╚éφéΩéΘé▒
é╞é╔Æìê╙é╡é─ë║é│éóüB
----------------------------------------------------------------------------
int MgButtonClear( mbp )
----------------------------------------------------------------------------
MgButton *mbp;
âvâbâVâàâ{â^âôì\æóæ╠é╠â{â^âôÆΦï`é≡èJò·é╡é▄é╖üBôoÿ^é╡é╜â{â^âôé═æSòöÅ┴ïÄé│éΩ
éΘé╠é┼üAé╗é╠îπì─é╤ MgButtonInit() é╡é─ÉVé╜é╔â{â^âôé≡ôoÿ^é╡Æ╝é╖é▒é╞é¬é┼é½é▄
é╖üB
----------------------------------------------------------------------------
int MgButtonOperation( wp, info, mdp )
----------------------------------------------------------------------------
WindowID wp;
EventInfo *info;
MgButton *mbp;
âvâbâVâàâ{â^âôé╠Ä└ì█é╠æÇì∞é≡ìsé╚éóé▄é╖üBé▒é╠è╓Éöé¬î─é╤Åoé│éΩéΘé╞â}âEâXâ{â^
âôé╔éµé┴é─ëƒé│éΩé╜é⌐é╟éñé⌐Æ▓é╫é▄é╖üBëƒé│éΩé─éóéΩé╬üAé╗éΩé╝éΩé╠â{â^âôé╔ÆΦï`
é╡é╜û▀éΦÆlé≡ò╘é╡é▄é╖üBé╟é╠â{â^âôéαëƒé│éΩé─éóé╚é»éΩé╬ FALSE é¬ò╘éΦé▄é╖üBÆlé═
â}âEâXâ{â^âôé≡ùúé╡é╜Ä₧é╔ò╘éΦé▄é╖üBâ{â^âôé≡ëƒé╡é╜é▄é▄üAÿgèOé╔âhâëâbâOé╡é╜ÅΩ
ìçé═é╗é╠â{â^âôæÇì∞é≡û│î°é╔é╖éΘé▒é╞é¬é┼é½é▄é╖üB(Touchâ{â^âôé≡Å£é¡)
MgButton é≡Ägé┴é╜âTâôâvâïâvâìâOâëâÇé┼é╖üB
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <corlib.h>
#define OSE 1
#define KOREMO 2
EventExec( wp, info )
WindowID wp;
EventInfo *info;
{
static MgButton mb;
DrawBuf dbuf[20];
switch( info->option ){
case EventOpen:
MgButtonInit( &mb );
MgButtonSetSymbol( &mb, 10, 10, 3, OSE, "ëƒé╣üI",
AttrDefault, 16 );
MgButtonSetSymbol( &mb, 30, 40, 3, KOREMO, "é▒éΩéαëƒé╣",
AttrDefault,16 );
return FALSE;
case EventRedraw:
DrawSetClear( dbuf, 1 );
WindowDraw( wp, dbuf, MgButtonSetDraw( &mb, dbuf+1 )+1 );
return TRUE;
case EventMouseSwitch:
if( info->LeftON ){
switch( MgButtonOperation( wp, info, &mb ) ){
case OSE:
ConsoleOpen();
ConsolePrint( "ëƒé│éΩé╜üI\r\n" );
break;
case KOREMO:
ConsoleOpen();
ConsolePrint( "é▒éΩéαëƒé│éΩé╜üI\r\n" );
break;
}
}
return TRUE;
}
return FALSE;
}
int WindowHeapSize= 1024*2;
WindowMain()
{
MgWindowDefaultOpen( 10, 10, 300, 80, "Ose", Icon, EventExec );
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----------------------------------------------------------------------------
15. MgInput âëâCâuâëâè
âåü[âUü[é╔1ìsôⁿù═é≡ìséφé╣éΘé╜é▀é╠âëâCâuâëâèé┼é╖üBò\ĪâGâèâAé═żé│é¡é─éαüA
ì╢ëEâXâNâìü[âïé╔éµé┴é─öΣèrôIÆ╖éóìsé╠ôⁿù═é¬ë┬ö\é╔é╚éΦé▄é╖üB
WindowID MgInputScrollOpen( mp, x, y, wp, len, attr, font )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
int x; ò\Īê╩Æué╠ì└òW
int y;
WindowID wp; ÉeâEâBâôâhâEé╠ ID
int len; ò\Īé│é╣éΘò╢ÄÜÉö
int attr; ò\Īò╢ÄÜé╠âAâgâèârâàü[âg
int font; Ägùpé╖éΘâtâHâôâgâTâCâY
MgInput ì\æóæ╠é≡Åëè·ë╗é╡üAÄwÆΦê╩Æué╔âXâNâìü[âïâoü[é┬é½ InputWindow é≡èJé½é▄
é╖üBé▒é╠âEâBâôâhâEé╠æσé½é│é═üAâtâHâôâgâTâCâY font é╞ò\Īé│é╣éΘò╢ÄÜÉö len é╔
éµé┴é─îêé▄éΦé╖üBôⁿù═é┼é½éΘò╢ÄÜÉöé═Åφé╔ì┼æσ 128 ò╢ÄÜé┼é╖üBû▀éΦÆlé═èJéóé╜
InputWindow é╠ ID é┼é╖üBôⁿù═é═ InputKey() é╔éµéΘìsò╥ÅWé¬ë┬ö\é┼é╖üBé▄é╜âJü[
â\âïê╩Æué╔ìçé╣é─Ä⌐ô«âXâNâìü[âïé╡é▄é╖üBâ}âEâXé╠ì╢â{â^âôé╔éµéΦüAôⁿù═Æåé╠ò╢ÄÜ
ù±é═éóé┬é┼éαæ╝é╠âEâBâôâhâEé╔ô]æùé¬ë┬ö\é╞é╚éΦé▄é╖üB
----------------------------------------------------------------------------
WindowID MgInputSimpleOpen( mp, x, y, wp, len, attr, font )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
int x; ò\Īê╩Æué╠ì└òW
int y;
WindowID wp; ÉeâEâBâôâhâEé╠ ID
int len; ò\Īé│é╣éΘò╢ÄÜÉö
int attr; ò\Īò╢ÄÜé╠âAâgâèârâàü[âg
int font; Ägùpé╖éΘâtâHâôâgâTâCâY
MgInput ì\æóæ╠é≡Åëè·ë╗é╡üAÄwÆΦê╩Æué╔ InputWindow é≡èJé½é▄é╖üBé▒é╠ÅΩìçé═ÿgéα
âXâNâìü[âïâoü[éαâXâNâìü[âïâXâCâbâ`éαéáéΦé▄é╣é±üBî─é╤Åoé╡î│é╠âvâìâOâëâÇé┼Ä⌐
ùRé╔ôⁿù═âGâèâAé≡ÅⁿéΘé▒é╞é¬é┼é½é▄é╖üBé▒é╠âEâBâôâhâEé╠æσé½é│é═üAâtâHâôâgâTâC
âY font é╞ò\Īé│é╣éΘò╢ÄÜÉö len é╔éµé┴é─îêé▄éΦé╖üBôⁿù═é┼é½éΘò╢ÄÜÉöé═Åφé╔ì┼æσ
128 ò╢ÄÜé┼é╖üBû▀éΦÆlé═èJéóé╜ InputWindow é╠ ID é┼é╖üBôⁿù═é═ InputKey() é╔éµ
éΘìsò╥ÅWé¬ë┬ö\é┼é╖üBé▄é╜âJü[â\âïê╩Æué╔ìçé╣é─Ä⌐ô«âXâNâìü[âïé╡é▄é╖üBâ}âEâXé╠
ì╢â{â^âôé╔éµéΦüAôⁿù═Æåé╠ò╢ÄÜù±é═éóé┬é┼éαæ╝é╠âEâBâôâhâEé╔ô]æùé¬ë┬ö\é╞é╚éΦé▄
é╖üB
----------------------------------------------------------------------------
void MgInputRedraw( mp )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
mp é╠Äwé╖ InputWindow é≡ò`ëµé╡é▄é╖üBÉeâEâBâôâhâEé╠ EventRedraw Ä₧é╔ì┼îπé╔
Ä└ìsé╡é─é¿éóé─ë║é│éóüB
----------------------------------------------------------------------------
int MgInputSendEvent( mp, info )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
EventInfo *info;
mp é╠Äwé╖ InputWindow é╔âCâxâôâgé≡æùÉMé╡é▄é╖üBé▒é╠è╓Éöé╔éµé┴é─üAòKùvé╚Åê
ù¥é≡ InputWindow é╔ìséφé╣éΘé▒é╞é¬é┼é½é▄é╖üBInputWindow é┼Åêù¥é┼é½éΘé╠é═
EventKey, EventMouseSwitch, EventMouseEnter, EventMouseOut é┼é╖üBé▒é╠éñé┐
EventKey é╞ EventMouseSwitch é═òKÉ{é┼é╖üBé▄é╜ EventMouseEnter/Out é≡ôné╖é▒
é╞é╔éµéΦüAâJü[â\âïé╠ ON/OFF é≡ìséφé╣éΘé▒é╞é¬é┼é½é▄é╖üBâCâxâôâgÄ└ìsâïü[â`âô
é╠û▀éΦÆlé¬é▒é╠è╓Éöé╠û▀éΦÆlé╞é╚éΦé▄é╖üBé┬é▄éΦâCâxâôâgé¬Ä≤ù¥é│éΩé╜ÅΩìç TRUE
é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
char *MgInputGetPointer( mp ) (â}âNâì)
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
ôⁿù═é╡é╜ò╢ÄÜù±é¬èiö[é│éΩéΘâoâbâtâ@é╠âAâhâîâXé≡ô╛é▄é╖üB
----------------------------------------------------------------------------
void MgInputClear( mp )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
ôⁿù═Æåé╠âoâbâtâ@é≡æSòöÅ┴ïÄé╡é▄é╖üB
----------------------------------------------------------------------------
void MgInputKey( mp, code, shift )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
int code; âLü[âRü[âh
int shift; âVâtâgâLü[é╠Å≤æ╘
InputWindow é╔âLü[ôⁿù═Åêù¥é≡ìséφé╣é▄é╖üBÆ╩Åφé▒é╠è╓Éöé═üAMgInput é╠âCâxâôâg
âïü[â`âôé┼ŃÄΦé╔î─é╤Åoé│éΩé▄é╖é╠é┼üAô┴é╔ÄgéñòKùvé═éáéΦé▄é╣é±üBâvâìâOâëâÇæñ
é┼ô┴ò╩é╔ò╢ÄÜé≡ôné╡é╜éóÄ₧é╔Ägé┴é─ë║é│éóüB
----------------------------------------------------------------------------
void MgInputSetCursorVisible( mp, sw )
----------------------------------------------------------------------------
MgInput *mp; MgInput ì\æóæ╠
int sw; ò\ĪâXâCâbâ`
âJü[â\âïò\Īé╠ ON/OFF é≡ìséφé╣é▄é╖üBé▒éΩéαÆ╩Åφé═ MgInput é╠âCâxâôâgâïü[â`
âôé┼Åêù¥é≡ìséñéµéñé╔é╚é┴é─éóé▄é╖üBôⁿù═âGâèâAé¬òíÉöéáéΦüAâåü[âUü[é╔æIæ≡é│é╣
éΘòKùvé¬éáéΘÅΩìçôÖé╔Ägé┴é─ë║é│éóüB
----------------------------------------------------------------------------
- - - - - Ägùpùß - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <corlib.h>
int WindowHeapSize= 0;
EventExec( wp, info )
WindowID wp;
EventInfo *info;
{
DrawBuf dbuf;
static MgInput mp;
switch( info->option ){
case EventOpen:
WindowSetEventAttr( wp, EventAttrDefault|EventUserON );
MgInputScrollOpen( &mp, 10, 10, wp, 30, AttrDefault, 10 );
WindowRedraw( wp );
return TRUE;
case EventClose:
WindowClose( wp );
WindowConnectionClose();
return TRUE;
case EventRedraw:
DrawSetClear( &dbuf, 1 );
WindowDraw( wp, &dbuf, 1 );
MgInputRedraw( &mp );
return TRUE;
case EventKey:
if( info->KeyCode == '\r' ){
MgInputClear( &mp );
return TRUE;
}
case EventMouseSwitch:
case EventMouseEnter:
case EventMouseOut:
return MgInputSendEvent( &mp, info );
case EventUser:
return ClipGetKeyboardAll( wp, info );
}
return FALSE;
}
WindowMain()
{
WindowTitleOpen( 10, 10, 200, 80, NULL, "mg", Push|Close, EventExec );
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
16. GposâëâCâuâëâè
256/65536ÉFâéü[âhé╠ÅΩìçò\Īé┼é½éΘâGâèâAé═ 512x512dot é╠ö═ê═é╔î└éτéΩé▄é╖üB
WSRV.X v2.24+13 ê╚ì~Æ╟ë┴é│éΩé╜üA512x512dot ö═ê═é≡öCê╙é╠ÅΩÅèé╔ê┌ô«é╖éΘï@ö\
é≡ÄgéóéΓé╖é¡è╟ù¥é╖éΘé╜é▀é╠âëâCâuâëâèîQé┼é╖üB
int GposPopAndMove( wp, info )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEé╠ ID
EventInfo *info; âCâxâôâgÅεò±
EventPop,EventMove é╠Åêù¥é≡ìséóé▄é╖üBé▒é╠Ä₧é┼é½éΘé╛é»Ä⌐ò¬é╠âEâBâôâhâEé¬âO
âëâtâBâbâNò\Īé┼é½éΘéµéñüAGV-RAM é╠ HOME(Gpos) é≡ò╧ìXé╡üAòKùvé╚éτæ╝é╠âEâB
âôâhâEé≡ Redraw é╡é▄é╖üBû▀éΦÆlé═Åφé╔ TRUE é┼é╖üB
----------------------------------------------------------------------------
int GposSetOffset( x, y, h, v )
----------------------------------------------------------------------------
int x; â|âWâVâçâôò╧ìXì╢Åπì└òWX
int y; â|âWâVâçâôò╧ìXì╢Åπì└òWY
int h; â|âWâVâçâôò╧ìXö═ê═H
int v; â|âWâVâçâôò╧ìXö═ê═V
256/65536ÉFâéü[âhÄ₧é╔üAÄwÆΦé╠ö═ê═é¬ò\Īé┼é½éΘê╩Æué╔G-VRAMé╠HOMEê╩Æu(Gpos)
é≡é╕éτé╡é▄é╖üBé┼é½éΘé╛é»ì┼żé╠ê┌ô«é┼ì╧é▐éµéñê┌ô«ì┼ôKë╗é≡ìséóé▄é╖üBéαé╡Gpos
é¬ò╧ìXé│éΩé╜é╚éτ TRUE é≡üAê┌ô«é╠òKùvé¬é╚é⌐é┴é╜ÅΩìçé═ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
void GposGraphicRedraw( wp )
----------------------------------------------------------------------------
WindowID wp; Ä⌐ò¬é╠âEâBâôâhâEID
âOâëâtâBâbâNÄgùpâAâgâèârâàü[âgé¬ùºé┴é─éóéΘâEâBâôâhâEé≡æSòö Redraw é╡é▄é╖üB
éαé╡ wp é¬ù^éªéτéΩé─éóéΘÅΩìçé═üAwp é╞êΩÆvé╖éΘâEâBâôâhâEé╔é═ Redraw é≡æùéΦ
é▄é╣é±üBwp é≡Å╚ù¬é╖éΘÅΩìçé═ NULL é≡ù^éªé─ë║é│éóüB
----------------------------------------------------------------------------
int GposInit( wp )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
ïNô«Æ╝îπé╠ Gpos ê╩Æué≡Æ▓É«é╡é▄é╖üBâOâëâtâBâbâNÄgùpâEâBâôâhâEé¬ Open é╡é╜éá
é╞üAì┼Åëé╠ WindowRedraw() é≡é╖éΘÆ╝æOé╔î─é╤Åoé╡é▄é╖üBû▀éΦÆlé═Åφé╔ TRUE é┼é╖üB
----------------------------------------------------------------------------
int GposSetClear( wp, dbuf, color1, color2 )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
DrawBuf *dbuf; ò`ëµâoâbâtâ@
int color1; ù╠êµôαé╠òöò¬é╔ò`ëµé╖éΘÉF(Æ╩ÅφColorGraphic)
int color2; ù╠êµèOé╠òöò¬é╔ò`ëµé╖éΘÉF(Æ╩ÅφColorGray)
ò`ëµö═ê═â`âFâbâNòté½ DrawSetClear() é┼é╖üBéαé╡é╗é╠âEâBâôâhâEé¬ Gpos é╠ò`ëµ
ö═ê═ôαé┼éáéΩé╬é╗é╠òöò¬é≡ color1 é┼üAö═ê═èOé╚éτ color2 é┼ò`ëµé╡é▄é╖üBò`ëµö═
ê═é⌐éτé═é╕éΩé╜òöò¬é≡â}âXâNò\Īé╖éΘé╜é▀é╔Ägéóé▄é╖üBû▀éΦÆlé═É▌ÆΦé╡é╜ò`ëµâXâeâb
âvÉöé┼é╖üB(ì┼æσ2)
----------------------------------------------------------------------------
int GposSetFill( wp, dbuf, color1, color2, x1, y1, x2, y2 )
----------------------------------------------------------------------------
WindowID wp; âEâBâôâhâEID
DrawBuf *dbuf; ò`ëµâoâbâtâ@
int color1; ù╠êµôαé╠òöò¬é╔ò`ëµé╖éΘÉF(Æ╩ÅφColorGraphic)
int color2; ù╠êµèOé╠òöò¬é╔ò`ëµé╖éΘÉF(Æ╩ÅφColorGray)
int x1, y1, x2, y2; ò`ëµö═ê═
ò`ëµö═ê═â`âFâbâNòté½ DrawSetLine( .., OptionFill ) é┼é╖üBéαé╡é╗é╠âEâBâôâhâE
é¬ Gpos é╠ò`ëµö═ê═ôαé┼éáéΩé╬é╗é╠òöò¬é≡ color1 é┼üAö═ê═èOé╚éτ color2 é┼ò`ëµ
é╡é▄é╖üBò`ëµö═ê═é⌐éτé═é╕éΩé╜òöò¬é≡â}âXâNò\Īé╖éΘé╜é▀é╔Ägéóé▄é╖üBû▀éΦÆlé═É▌
ÆΦé╡é╜ò`ëµâXâeâbâvÉöé┼é╖üB(ì┼æσ2) ò`ëµö═ê═é╠ì└òWÄwÆΦé═üAòKé╕ x1 < x2 ,
y1 < y2 é┼é╚é»éΩé╬é╚éΦé▄é╣é±üB
----------------------------------------------------------------------------
17. Dialog âëâCâuâëâè
int DialogYesNo( msg, info )
----------------------------------------------------------------------------
char *msg; ò\Īò╢ÄÜù±
EventInfo *info; âCâxâôâgÅεò±
ëµû╩Æåë¢é╔â_âCâAâìâOâEâBâôâhâEé≡èJé½üAYES/NO æIæ≡é≡ìséóé▄é╖üBYES é╚éτ TRUE
é≡üANO é╚éτ FALSE é≡ò╘é╡é▄é╖üBæIæ≡é═â}âEâXâNâèâbâNüAâLü[ôⁿù═([y]é╞[n])é¬ë┬
ö\é┼é╖üBâ_âCâAâìâOÅêù¥Æåé═æ╝é╠âCâxâôâgé═Ä~é▄éΦé▄é╖üB
----------------------------------------------------------------------------
WindowID DialogMessageOpen( msg, attr )
----------------------------------------------------------------------------
char *msg; ò\Īò╢ÄÜù±
int attr; ò\ĪâAâgâèârâàü[âg
ëµû╩Æåë¢é╔â_âCâAâìâOâEâBâôâhâEé≡èJé½üAâüâbâZü[âWò╢ÄÜù±é≡ò\Īé╡é▄é╖üBèJéóé╜
âEâBâôâhâEé╠ ID é≡ò╘é╡é▄é╖üBé▒é╠â_âCâAâìâOé≡ò┬é╢éΘÄ₧é═üAé╗é╠ ID é≡Ägé┴é─
WindowClose() é≡Ä└ìsé╡é─ë║é│éóüB
----------------------------------------------------------------------------
18. é╗é╠æ╝é╠âEâBâôâhâEè╓ÿA
char *KoWindowGetEnv( ptr )
----------------------------------------------------------------------------
char *ptr; ò╧Éöû╝
Ko-Window Åπé┼è┬ï½ò╧Éöé≡ÄQÅ╞é╡é▄é╖üBgetenv() é╠æπùpè╓Éöé┼é╖üBcorlib.ha é╠
ôαòöé┼ KoWindoGetEnv é≡ getenv é╔ define é╡é─éóé▄é╖üBò╘éΦÆlé═è┬ï½ò╧Éöé╔ÆΦ
ï`é│éΩé─éóéΘôαùeé╠âAâhâîâXé┼é╖üBNULL é¬ò╘é┴é╜ÅΩìçé═é╗é╠ò╧Éöé═ÆΦï`é│éΩé─éó
é▄é╣é±üBstatic ù╠êµé╠âAâhâîâXé≡ò╘é╖é▒é╞é╔Æìê╙é╡é─ë║é│éóüB
----------------------------------------------------------------------------
int KoWindowVersionCnv( ver )
----------------------------------------------------------------------------
char *ver; âoü[âWâçâôò╢ÄÜù±
âTü[âoü[é╠âoü[âWâçâôò╢ÄÜù±é≡ÉöÆlò╧è╖é╡é▄é╖üB(8bitÆPê╩é┼4é┬é╠ÉöÆlé╞î⌐é╚é╖)
ùß "2.24+12.8" -> 0x02180c08 , v2.24+13 -> 0x02180d00
----------------------------------------------------------------------------
int KoWindowVersionCheck( ver )
----------------------------------------------------------------------------
char *ver; â`âFâbâNé╖éΘâoü[âWâçâôò╢ÄÜù±
âTü[âoü[é╠âoü[âWâçâôé¬üAÄwÆΦé╡é╜âoü[âWâçâôéµéΦÉVé╡éóé⌐é╟éñé⌐â`âFâbâNé╡é▄é╖üB
ÉVé╡é»éΩé╬É│é╠Éöé≡üAî├é»éΩé╬òëé╠Éöé≡ò╘é╡é▄é╖üB(ôÖé╡é»éΩé╬0)
----------------------------------------------------------------------------
int KoWindowHeapAlloc()
----------------------------------------------------------------------------
âEâBâôâhâEé┼Ägùpé╖éΘ HEAP ù╠êµé≡üAïNô«îπé╔èmò█é╡é▄é╖üBé▒é╠è╓Éöé≡Ägùpé╖éΘÄ₧
é═üAWindowHeapSize é╠Åëè·Ælé═ 0 é╔é╡é╜Å≤æ╘é┼âRâôâpâCâïé╡é─ë║é│éóüBé╗é╠îπüA
ïNô«îπé╔âvâìâOâëâÇÆåé┼ WindowHeapSize é╔ùeù╩é≡æπôⁿé╡é─é⌐éτî─é╤Åoé╡é▄é╖üBé╖
é┼é╔ HEAP ù╠êµé¬æ╢ì▌é╡é─éóéΘé╞üAé╗éΩé¬ÄgéφéΩé─éóéΘé⌐éóé╚éóé⌐é╔è╓îWé╚é¡û│Å≡
îÅé┼èJò·é╡é─é╡é▄éóé▄é╖üBé╗é╠é╜é▀î─é╤Åoé╡é═é┼é½éΘé╛é»êΩôxé╛é»é╔é╡é─ë║é│éóüB
é▒é╠è╓Éöé═üAïNô«îπé╔âIâvâVâçâôâXâCâbâ`é┼ HEAP ùeù╩é≡ÄwÆΦé┼é½éΘéµéñé╔é╖éΘé╜
é▀é╔æ╢ì▌é╡é─éóé▄é╖üBHEAP ù╠êµé≡èmò█é┼é½é╜ÅΩìçé═ TRUE é≡ò╘é╡üAèmò█é┼é½é╚é»
éΩé╬ FALSE é≡ò╘é╡é▄é╖üB
----------------------------------------------------------------------------
int KoWindowXfStat()
----------------------------------------------------------------------------
[XF1]ü`[XF5]é╠âLü[Åεò±é≡ôⁿÄΦé╡é▄é╖üBinfo->ShiftStat é╠éµéñé╔üAÅCÅⁿâLü[é╞é╡
é─ [XF?] é≡ÄgéñÅΩìçé╔Ägùpé╡é▄é╖üB
û▀éΦÆl
bit2 [ïLìå]
bit3 [ôoÿ^]
bit5 [XF1]
bit6 [XF2]
bit7 [XF3]
bit8 [XF4]
bit9 [XF5]
----------------------------------------------------------------------------
--
ì┼ÅIìXÉV 1995 11/14 COR.