2014-03-19 2 views
4

나는 그놈 데스크탑 응용 프로그램 개발의 초보자이므로 가능한 한 많이 배우려고합니다. 나는 developer.gnome.org에 대한 다양한 자습서를 자바 스크립트로 작성했다. GObject Introspection을 통해 JavaScript에서 C 라이브러리에 액세스 할 수 있다는 것을 알고 있습니다.C 라이브러리를 사용하여 JavaScript에서 GNOME 응용 프로그램을 만드는 방법

데스크톱 응용 프로그램 용 JavaScript의 사용이 새롭기 때문에 많은 문서가 존재하지 않으므로. 어떤 라이브러리에 액세스하기 위해 어떤 매개 변수로 어떤 함수를 사용할 수 있는지 알 수있는 방법이 있는지 궁금합니다.

this.mybutton = new GTK.Button({some code here}); 

어떻게 내가 사용할 수있는 기능의 이름에 대해 알고 올 수 있습니다 :

예를 들어 내가으로 자바 스크립트에서 GTK를 사용하여 버튼을 만들 수 있습니까? C 언어로 작성된 문서를보고 자바 스크립트 용 함수의 이름을 만들 수있는 방법이 있습니까?

일부 라이브러리에 대해서는 JavaScript가 작성된 this documentation입니다. GNOME 응용 프로그램 개발에 대해 더 많은 도움을 얻으려면 도움을 얻을 것입니다.

+0

나의 첫번째 본능이 말을하는 것입니다, 당신은 자바 스크립트를 알고 있다면, 당신은 거의 그래서 그냥 도움을하려고 다음 사람을 위해 C를 사용하여 C를 알고, JS의 hello world에 대한 링크는 그놈 앱용 자바 스크립트가 가능하다는 것을 보여줍니다. https://developer.gnome.org/gnome-devel-demos/3.7/helloWorld.js.html.en –

+1

@TomCerul 예 i C를 알고 있지만 자바 스크립트로 앱을 만드는 법을 배우고 싶어서 어떻게 할 수 있는지 알고 싶다. 나는 자바 스크립트에서 C 라이브러리를 사용한다. 내가 사용할 수있는 함수 이름과 매개 변수에 대해 어떻게 알 수 있습니까? – prolific

답변

5

나는 당신과 동의한다. 문서가 상당히 적다.
대부분의 경우 다른 개발자가 이미 작성한 코드를 찾아서 원하는 코드로 변경하려고합니다.
C 설명서는 http://developer.gnome.org에서 거의 완성되어 거의 모든 방법을 사용할 수 있습니다.
난 당신이 웹 사이트에서 살펴하는 것이 좋습니다 : http://www.roojs.org/seed/gir-1.2-gtk-3.0/seed/
또한 하나 이에 : http://zetcode.com/gui/javascriptgtktutorial/
행운을 당신의 자바 스크립트 개발!

0

예, GIR 파일을 검색하여 해당 C 라이브러리 함수에 매핑 된 자바 스크립트 함수를 가져올 수 있습니다. 각 라이브러리에는 인트로 스펙 정보를 포함하는 XML 파일이 있어야합니다.

예 : one question 예전에 물었습니다.

grep -rn gdk_keymap_get_default /usr/share/gir-1.0/

/usr/share/gir-1.0/Gdk-2.0.gir:16781:    c:identifier="gdk_keymap_get_default" 
/usr/share/gir-1.0/Gdk-3.0.gir:15776:  <function name="get_default" c:identifier="gdk_keymap_get_default"> 

vim /usr/share/gir-1.0/Gdk-3.0.gir +15776

<class name="Keymap" 
      c:symbol-prefix="keymap" 
      c:type="GdkKeymap" 
      parent="GObject.Object" 
      glib:type-name="GdkKeymap" 
      glib:get-type="gdk_keymap_get_type"> 
     <doc xml:space="preserve">A #GdkKeymap defines the translation from keyboard state 
(including a hardware key, a modifier mask, and active keyboard group) 
to a keyval. This translation has two phases. The first phase is 
to determine the effective keyboard group and level for the keyboard 
state; the second phase is to look up the keycode/group/level triplet 
in the keymap and see what keyval it corresponds to.</doc> 
     <function name="get_default" c:identifier="gdk_keymap_get_default"> 
     <doc xml:space="preserve">Returns the #GdkKeymap attached to the default display.</doc> 
     <return-value transfer-ownership="none"> 
      <doc xml:space="preserve">the #GdkKeymap attached to the default display.</doc> 
      <type name="Keymap" c:type="GdkKeymap*"/> 
     </return-value> 
     </function> 
관련 문제