====== 메뉴 시스템 라이브러리 ====== 화면상에 메뉴를 표시하고 터치입력을 받기 위한 명령어 모음입니다. 본 라이브러리를 사용하면 아래와 같은 화 면을 쉽게 구성하고 운영할 수 있게 됩니다. {{ :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 보다 작으면