void enuSetMouseMoveCallBack() method



void enuSetMouseMoveCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 이동 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 이동 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseMove(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetMouseMoveCallBack(ViewHandle, MouseMove);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );

void enuSetMButtonUpCallBack() method



void enuSetMButtonUpCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 업(middle) 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 업(middle) 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseMButtonUp(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetMButtonUpCallBack(ViewHandle, MouseMButtonUp);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );

bool enuSetMButtonDownCallBack() method



void enuSetMButtonDownCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 다운(middle) 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 다운(middle) 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseMButtonDown(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetMButtonDownCallBack(ViewHandle, MouseMButtonDown);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );

enuSpace for Moon(2016) 기준

void enuSetRButtonUpCallBack() method



void enuSetRButtonUpCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 업(right) 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 업(right) 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseRButtonUp(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetRButtonUpCallBack(ViewHandle, MouseRButtonUp);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );




void enuSetRButtonDownCallBack() method



void enuSetRButtonDownCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 다운(right) 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 다운(right) 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseRButtonDown(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetRButtonDownCallBack(ViewHandle, MouseRButtonDown);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );



enuSpace professional 2016 기준

void enuSetLButtonUpCallBack() method



void enuSetLButtonUpCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 업 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 업 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseLButtonUp(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 Up 상태시 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetLButtonUpCallBack(ViewHandle, MouseLButtonUp);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );



enuSpace professional 2016 기준

void enuSetLButtonDownCallBack() method



void enuSetLButtonDownCallBack(

[in] HVIEW hView,

[in] void cb_function(float, float)

};


Parameters

hView [in]

Type:HVIEW

enuSpace View Handle


cb_function [in]

Type:function pointer

마우스 다운 이벤트를 받고자하는 함수 포인터 주소


Return value

Type : void


Remarks

enuSpace SDK를 이용시, 응용 프로그램 개발에 뷰 마우스 다운 이벤트를 전달 받고자 하는 함수의 주소를 설정하며 해당 이벤트 발생시 응용 프로그램에 콜백함수 호출 수행. 



Examples


enuSpace SDK



HVIEW ViewHandle = NULL;


void MouseLButtonDown(float posx, float posy)

{

// Mouse Down Postiion (x, y)

// 선택 객체 리턴, 리턴값이 NULL인 경우 마우스 다운에 의해서 선택 객체 없음.

HNODE Node = enuGetSelectSingleObject(ViewHandle);


if (Node)

{

VariableStruct pg_type;

enuGetAttributeByNode(pSvg, selNode, L"pg-type", &pg_type);


if (_wtoi(pg_type.strValue) == DEF_NODE_LINE)

{

// 선택된 객체가 라인이라면, 끝점 좌표값 변경.

CString strValue;

strValue.Format(L"%f", posx);

enuSetAttributeByNode(pSvg, Node, L"x2", strValue.GetBuffer(0));

strValue.Format(L"%f", posy);

enuSetAttributeByNode(pSvg, Node, L"y2", strValue.GetBuffer(0));

}

}

}


void CSampleView::OnInitialUpdate()

{

CView::OnInitialUpdate();


enuCreateProject();

enuLoadProjectFile(L"Project\\sample.enup");

ViewHandle = enuCreateView(this->m_hWnd);


enuSetLButtonDownCallBack(ViewHandle, MouseLButtonDown);

if (enuSetSvgPageView(ViewHandle, L"picture\\picture.svg"))

{

HSVG pSvg = enuGetSvgHandler(ViewHandle);

HNODE lineNode = enuCreateLine(pSvg, L"", 0, 0, 0, 0, 0, 0);


enuSetEditOperationMode(ViewHandle, false);

enuSetScriptOperationMode(true);

}

}




Reference


void enuSetLButtonDownCallBack( );

void enuSetLButtonUpCallBack( );

void enuSetRButtonDownCallBack( );

void enuSetRButtonUpCallBack( );

void enuSetMButtonDownCallBack( );

void enuSetMButtonUpCallBack( );

void enuSetMouseMoveCallBack( );

void enuSetMouseWheelCallBack( );


enuSpace professional 2016 기준

void PlaySound method (enuSpace in lua script)


enuSpace in lua lua function


void PlaySound(

[in] string Filename

};


Parameters

Filename[in]

Type:string

wav 파일 이름을 사용


Return value

Type : bool


Remarks

루아 스크립트에서 본 함수를 사용하는 경우, windos api PlaySound 함수 호출 수행



Examples


enuSpace script editor


function onmousedown()

PlaySound("Alarm02.wav")

end

'enuSpace for lua API' 카테고리의 다른 글

enuSpace :: ShellExecute()  (0) 2016.01.15

enuSpace professional 2016 기준

void ShellExecute method (enuSpace in lua script)


enuSpace in lua function


void ShellExecute(

[in] string Operation,

[in] string File,

[in] string Parameters,

[in] string Directory,

};


Parameters

Operation[in]

Type:string

The set of available verbs depends on the particular file or folder. Generally, the actions available from an object's shortcut menu are available verbs. The following verbs are commonly used:


edit

Launches an editor and opens the document for editing. If File is not a document file, the function will fail.


explore

Explores a folder specified by File.


find

Initiates a search beginning in the directory specified by Directory.


open

Opens the item specified by the File parameter. The item can be a file or folder.


print

Prints the file specified by File. If File is not a document file, the function fails.


File[in]

Type:string

A pointer to a null-terminated string that specifies the file or object on which to execute the specified verb. To specify a Shell namespace object, pass the fully qualified parse name. Note that not all verbs are supported on all objects. For example, not all document types support the "print" verb. If a relative path is used for the Directory parameter do not use a relative path for File.


Parameters[in]

Type:string

If File specifies an executable file, this parameter is a pointer to a null-terminated string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If File specifies a document file, Parameters should be NULL.


Directory[in]

Type:string

A pointer to a null-terminated string that specifies the default (working) directory for the action. If this value is NULL, the current working directory is used. If a relative path is provided at File, do not use a relative path for Directory.



Return value

Type : void


Remarks

루아 스크립트에서 본 함수를 사용하는 경우, windows api ShellExecute 함수 호출 수행.



Examples


enuSpace script editor


function onmousedown()

ShellExecute("open", "http://enuspace.tistory.com", "", "")

end



'enuSpace for lua API' 카테고리의 다른 글

enuSpace :: PlaySound()  (0) 2016.01.15

enuSpace professional 2016 기준

enuSpace 편집기 스크립트 사용자 함수 호출 (lua script)


스크립트 내에서의 다른 함수 실행 


같은 객체 내의 함수 실행


각 객체는 다른 여러 개의 함수를 포함할 수 있으며 예시로 사용된 것처럼 직접 함수 이름을 호출할 수 있다.

다음 그림에서 GetColor함수는 같은 사각형 객체 내에 있으며 onmousedown함수에서 사용된 예이다.





이웃 객체 내의 함수 실행


각 객체에 함수는 이웃하는 다른 객체의 함수를 호출할 수 있다.

다음 그림에서 GetColor함수는 같은 사각형 객체 내에 있으며 onmousedown함수에서 사용된 예이다.



다음 그림은 "빨강"이라는 텍스트 객체에 SetFontSize함수를 이용하여 fonts-size를 바꾸는 함수를 만들고 이웃한 객체인 사각형 객체의 마우스다운 이벤트 함수를 이용하여 실행하는 함수 예시이다. 사각형 객체는 마우스를 클릭하여 index 값을 바꾸고 인덱스 값에 따라 이웃한 객체인 ID_TestRed 객체의 font-size를 바꾼다.




Lua Script 함수 실행


각 객체는 자식객체의 함수, 상위객체의 함수 페이지 함수, 전역 함수, 인터페이스 함수, 루아스크립트 함수 등을 실행할 수 있는데 실행되는 순서는 다음과 같다.

- 같은 객체 내의 함수

- 자식 객체의 함수

- 이웃 객체의 함수

- 상위 객체의 함수

- 페이지 함수

- 전역함수

- 인터페이스 함수

- .루아스크립트 함수

우선 순위는 같은 객체 내의 함수가 가장 높고 루아스크립트 함수가 가장 낮다. 자식 객체의 함수를 실행하기 위해서는 자식객체 id.함수 이름으로 실행해야 하며 자식객체에서 찾지 못하면 이웃 객체에서 찾는데 이웃객체에도 없으면 차례로 우선순위가 높은 순으로 찾는다. 따라서 우선 순위가 낮은 함수를 사용하려면 같은 이름의 함수는 우선 순위가 낮은 함수를 찾을 때까지 존재하지 않아야 한다. mean 함수는 테이블을 인수로 받아 테이블 내의 모든 값을 더해서 테이블의 필드 개수로 나누어 평균값을 구한 후 그 값을 반환한다. 다음 그림은 mean 전역함수를 선언한 예시이다.




다음 그림은 전역함수 mean 함수를 이용해서 onmousedown에 의해 바뀌는 index 값을 각 테이블의 필드 값에 더하고 테이블의 평균값을 구하는 전역함수 mean을 이용해서 평균값을 구해서 텍스트 객체(ID_TextRed)의 text 에 문자열을 할당하는 onmousedown함수 예제와 그 실행된 상태를 표시하는 예시이다.





다른 함수를 실행함으로써 바뀐 값을 그 후에 사용하는 방법


다른 함수를 실행함으로써 전역 변수나 다른 기타의 변수가 바뀐 상태의 것을 현재의 스크립트 함수에서 다시 사용하고자 할 때 값을 다시 가져오는 GetValue(변수이름) 을 사용하여야 하며 그냥 사용할 시는 변경된 값이 적용되지 않는다.

다음 그림은 스크립트 내에서 index의 값을 사용하는 예시를 보여준다. IncreaseIndex함수는 index값을 1씩 증가시키므로 IncreaseIndex함수가 실행된 후에는 index 값이 1이 증가되어 있으나 스크립트 내에서는 아직 이전 값을 가지고 있다. 변경된 값을 가져오기 위해서 GetValue(index)를 사용하여 현재의 값을 가지고 와서 사용한다.










+ Recent posts