<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gtk" xml:lang="ko">

  <info>
    <link type="guide" xref="tech" group="gtk"/>
    <revision pkgversion="3.0" date="2011-04-05" status="candidate"/>

    <credit type="author copyright">
      <name>Shaun McCance</name>
      <email its:translate="no">shaunm@gnome.org</email>
      <years>2011–2012</years>
    </credit>

    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>

    <desc>그래픽 인터페이스용 위젯 툴킷</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>조성호</mal:name>
      <mal:email>shcho@gnome.org</mal:email>
      <mal:years>2016, 2017, 2018.</mal:years>
    </mal:credit>
  </info>

<title>GTK+</title>

<p>GTK+는 그놈 사용자 인터페이스를 구성하는데 활용하는 기초 라이브러리입니다. GTK는 "GIMP 툴 킷"이며, 원래 그림 편집 프로그램용으로 작성했고, 나중에 독립 라이브러리로 따로 빼냈습니다. 일반 그래픽 기반 프로그램에서 활용하는 모든 사용자 인터페이스 컨트롤, 또는 <em>위젯</em>을 제공합니다. 객체지향 API에서는 저수준의 구체적인 드로잉 및 장치 연동을 하지 않고도 사용자 인터페이스를 구성할 수 있게 합니다.</p>

<p>기본 위젯과 더불어, 단추, 확인 상자, 텍스트 항목에 대해 GTK+에서는 트리 뷰, 다중 라인 텍스트 필드, 메뉴, 도구 표시줄 동작에 대해 모델-뷰-컨트롤러(MVC) API를 제공합니다.</p>

<p>GTK+ 위젯은 <em>박스 패킹 모델</em>에 따라 창에 배치합니다. 프로그래머는 절대 좌표값으로 위젯을 직접 배치하지 않고, 컨테이너 상자에 어떻게 위젯을 함께 감싸 넣느냐만 정의합니다. 따라서, GTK+로 내용에 맞춰 창 크기를 올바로 나타내며, 창 크기 조절시 자동으로 처리합니다. 아라비아어, 히브리어 같은 RTL 언어의 경우, GTK+에서는 자동으로 사용자 인터페이스를 왼쪽에서 오른쪽으로 방향을 바꾸어 컨트롤을 기대하는 보기 순서로 배치합니다.</p>

<p>GTK+에서는 프로그램에서 활용할 개별 위젯을 새로 만들 수 있습니다. 자체 또는 기존의 위젯과 유사하게, 개별 위젯 또한 GTK+에서 보유한 RTL 언어 지원, 접근성 인터페이스, 키보드 탐색, 자동 크기 조절 등의 모든 기능을 지원합니다.</p>

<list style="compact">
  <item><p><link href="http://gtk.org/">공식 웹 사이트</link></p></item>
  <item><p><link href="http://developer.gnome.org/gnome-devel-demos/stable/">따라하기 예제</link></p></item>
  <item><p><link href="http://developer.gnome.org/gtk3/stable/">참고 설명서</link></p></item>
  <item><p><link href="https://git.gnome.org/browse/gtk+/">git 저장소</link></p></item>
  <item><p>메일링 리스트:</p>
    <list style="compact">
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list">GTK+ 프로그램 작성법</link></p></item>
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-list">GTK+ 일반 대화</link></p></item>
      <item><p><link href="https://mail.gnome.org/mailman/listinfo/gtk-devel-list">GTK+ 개발</link></p></item>
    </list>
  </item>
</list>
</page>
