mirror of https://github.com/minexew/Shrine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.7 KiB
89 lines
1.7 KiB
//See $LK,"Menus",A="HI:Menus"$ |
|
|
|
#define M_OPTION1 1 |
|
#define M_OPTION2 2 |
|
|
|
U0 PullDownMenuDemo() |
|
{ |
|
I64 msg_code,arg1,arg2; |
|
CMenuEntry *tmpse; |
|
|
|
MenuPush( |
|
"File {" |
|
" Open(,'O');" |
|
" Save(,'S');" |
|
" Exit(,CH_SHIFT_ESC);" |
|
"}" |
|
"Edit {" |
|
" Cut(,,SC_DELETE|SCF_SHIFT);" |
|
" Paste(,,SC_INS|SCF_SHIFT);" |
|
"}" |
|
"Misc {" |
|
" Beep(,CH_SPACE);" |
|
" Opt1(MSG_CMD,M_OPTION1);" |
|
" Opt2(MSG_CMD,M_OPTION2);" |
|
"}" |
|
"Help {" |
|
" Help(,,0x3B0000003B);" |
|
" About(,,0x23B0000023B);" |
|
"}"); |
|
|
|
"A pull-down menu will appear " |
|
"if you move the mouse to the top " |
|
"of the scrn.\n\n"; |
|
|
|
do { |
|
msg_code=GetMsg(&arg1,&arg2,1<<MSG_KEY_DOWN+1<<MSG_CMD); |
|
"\nCmd:%d ARG1:%X ARG2:%X\n\n",msg_code,arg1,arg2; |
|
|
|
switch (msg_code) { |
|
case MSG_KEY_DOWN: |
|
switch (arg1) {//ASCII |
|
case CH_SPACE: |
|
Beep; |
|
break; |
|
case 0: |
|
switch (arg2.u8[0]) {//arg2=Scan code |
|
case SC_F1: |
|
if (arg2&SCF_SHIFT) |
|
"About PullDown Demo\n"; |
|
else |
|
"Test the menu.\n"; |
|
break; |
|
case SC_DELETE: |
|
if (arg2&SCF_SHIFT) |
|
"Cut\n"; |
|
break; |
|
case SC_INS: |
|
if (arg2&SCF_SHIFT) |
|
"Paste\n"; |
|
break; |
|
} |
|
break; |
|
} |
|
break; |
|
|
|
case MSG_CMD: |
|
//I Recommend making your menu |
|
//drive by key strokes, but you can |
|
//use the $LK,"MSG_CMD",A="MN:MSG_CMD"$ val. |
|
switch (arg1) { |
|
case M_OPTION1: |
|
"Option # 1\n"; |
|
if (tmpse=MenuEntryFind(Fs->cur_menu,"Misc/Opt1")) |
|
tmpse->checked=!tmpse->checked; |
|
break; |
|
case M_OPTION2: |
|
"Option # 2\n"; |
|
if (tmpse=MenuEntryFind(Fs->cur_menu,"Misc/Opt2")) |
|
tmpse->checked=!tmpse->checked; |
|
break; |
|
} |
|
break; |
|
} |
|
|
|
} while (msg_code!=MSG_KEY_DOWN||(arg1!=CH_SHIFT_ESC && arg1!=CH_ESC)); |
|
MenuPop; |
|
} |
|
|
|
PullDownMenuDemo;
|
|
|