====== 메뉴 시스템 라이브러리 ======
화면상에 메뉴를 표시하고 터치입력을 받기 위한 명령어 모음입니다. 본 라이브러리를 사용하면 아래와 같은 화
면을 쉽게 구성하고 운영할 수 있게 됩니다.
{{ :ct1820:메뉴시스템:menusystem.png?nolink |}}
CT1820 에는 총 50 개의 MENU 보턴을 기억할 수 있는 방이 있습니다. 각각의 방에 MENUSET 명령으로
MENU 의 영역과 스타일을 정의해 놓습니다. 그리고 MENUTITLE 명령으로 MENU 의 제목을 표시하고, 터치입
력이 들어오면, MENUCHECK 명령으로 눌려진 MENU 를 찾아내는 방법으로 프로그램을 작성합니다.
각 보턴의 상황을 기록해 놓는 50 개의 방은 MENUSET 명령에 의해서 언제든지 다시 셋팅할 수 있습니다. 즉,
한 화면에서 최대 50 개의 보턴을 입력 받을 수 있고, 다음 화면에서 보턴의 상태를 다시 셋팅하여 사용할 수 있
습니다.
----
====== Menuset ======
''MENUSET index, style, x1, y1, x2, y2''
|Index : 메뉴인덱스 번호|
|Style : 보턴의 모양; 0=표시없음, 1=박스, 2=그림자박스|
|x1,y1,x2,y2 : 메뉴 보턴의 위치정보|
Index 에는 0~49 사이의 값을 적어줍니다. Style 은 보턴의 모양입니다. 0 으로 하면 아무것도 표시되지 않습니다.
1 은 보통박스의 모양이며, 2 는 그림자가 있는 박스의 모양입니다.
{{ :ct1820:menuset:menuset.png?nolink |}}
x1,y1, x2, y2 를 대각선으로 하는 박스가 보턴의 크기가 됩니다. 이 명령이 실행되면 화면의 일부 영역이 보턴영
역으로 설정되고, 스타일의 종류에 따라 보턴의 모양이 표시됩니다.
----
====== Menuset2 ======
''MENUSET2 index, style, x1, y1, x2, y2''
|Index : 메뉴인덱스 번호|
|Style : 보턴의 모양|
|x1,y1,x2,y2 : 메뉴 보턴의 위치정보|
Menuset 과 완전히 동일한 명령어입니다. Style 을 0 부터 3 까지 지정할 수 있으며, 기존 Menuset 과는 다른 다
양한 모양의 보턴을 그립니다. 본 명령어는 CT1721C 에서는 사용할 수 없습니다.
{{ :ct1820:메뉴시스템:menuset2.png?nolink |}}
----
====== Menureverse ======
''MENUREVERSE index''
|Index : 메뉴인덱스 번호|
선택된 메뉴 박스를 반전시켜 주는 명령입니다. 어떤 메뉴가 선택되었는지 표현하기 위해 사용합니다.
{{ :ct1820:메뉴시스템:menureverse.png?nolink |}}
----
====== Menureverse2 ======
''MENUREVERSE2 index, Style''
|Index : 메뉴인덱스 번호|
|Style : 보턴의 모양|
선택된 메뉴 박스를 반전시켜 주는 명령입니다. Menuset2 로 선언한 경우 Menureverse2 로 반전해야, 해당 보턴
에 맞는 반전을 표시합니다. 본 명령어는 CT1721C 에서는 사용할 수 없습니다.
아래 소스를 ctrl+C 로 카피한뒤 CUBLOC Studio 에 ctrl+V 로 붙여넣기해서 테스트해보실 수 있습니다.
#include "CT18XX"
Dim I As Integer
Dim TX1 As Integer, TY1 As Integer
Contrast 550
On Pad Gosub GETTOUCH
Menuset2 0,3,120,155,195,200
Menutitle 0,20,14,"RESET"
Do
Locate 15,6
Print DEC5 I
Incr I
Delay 200
Loop
GETTOUCH:
TX1 = Sys(10)
TY1 = Sys(11)
Locate 0,0
Print Dec TX1, " ", Dec TY1
If Menucheck(0,TX1,TY1) = 1 Then
Menureverse2 0,3 ‘ 파라메터가 2 개입니다. 주의하세요
Ct18beep 20 '키터치음 발생
I = 0
End If
Return
----
====== Menutitle ======
''MENUTITLE index, x, y, string''
|Index : 메뉴인덱스 번호|
|x,y : 메뉴 보턴의 왼쪽 위 기준점에서 x,y 위치|
|string : 메뉴의 제목|
Menuset 명령으로는 박스만 표시되기 때문에 어떤 메뉴인지 알 수 없습니다. Menutitle 명령으로 Menuset 명령으
로 선언한 메뉴영역에 제목을 표시합니다.
Menutitle 0,13,13,"가스잔량"
Menutitle 1,16,13,"초기화"
Menutitle 2,13,13,"가격계산"
{{ :ct1820:메뉴시스템:menutitle.png?nolink |}}
----
====== Menucheck( ) ======
''Variable = MENUCHECK( index, touchx, touchy)''
|variable : 결과를 저장할 정수형 변수 (선택되었으면 1, 아니면 0)|
|index : 메뉴인덱스 번호|
|touchx : 터치입력지점의 x 좌표|
|touchy : 터치입력지점의 y 좌표|
어떤 메뉴가 선택되었는지 알아낼 수 있는 명령어입니다. Touchx, Touchy 에는 유저가 터치패드에 입력한 지점
의 좌표를 넣고, Index 에는 Menuset 에서 선언한 값을 적어줍니다.
Index 에 지정한 메뉴가 선택되었다면 1 을 반환합니다. 선택되지 않았으면 0 을 반환합니다.
If Menucheck(0,TX1,TY1) = 1 Then
Menureverse 0
Beep 18,180
End If
----
====== Menu( ) ======
''Variable = MENU( index, pos)''
|Variable : 결과를 저장할 정수형 변수 (선택되었으면 1, 아니면 0)|
|Index : 메뉴인덱스 번호|
|pos : 위치 (0=x1, 1=y1, 2=x2, 3=y2)|
Menuset 명령에 의해 셋팅된 값을 다시 읽어낼 필요가 있을 때, 사용하는 함수입니다. 해당인덱스에서 pos 값에
따라 읽어옵니다. 0 이면 x1, 1 이면 y1, 2 이면 x2, 3 이면 y2 의 좌표 값을 읽어옵니다. 마치 CUTOUCH 내부에
있는 MENU 영역을 2 차원배열로 억세스 하는 것과 비슷합니다.
If Menu(0,1) < 100 THEN ‘ 메뉴 보턴 0 번의 Y1 위치가 100 보다 작으면