(:file "gdk.objects")
                (:file "gdk.functions")
                (:file "gdk.general"))
-  :depends-on (:cl-gtk2-glib :cffi))
\ No newline at end of file
+  :depends-on (:cl-gtk2-glib :cffi :cl-gtk2-pango))
\ No newline at end of file
 
 (defun (setf gdk-window-events) (new-value window)
   (gdk-window-set-events window new-value))
 
+(export 'gdk-window-events)
+
 (defcfun gdk-gc-new (g-object graphics-context :already-referenced)
   (drawable (g-object drawable)))
 
     (gdk-drawable-get-size drawable x y)
     (values (mem-ref x :int) (mem-ref y :int))))
 
-(define-g-object-class "PangoLayout" pango-layout (:type-initializer "pango_layout_get_type") ())
+(export 'drawable-get-size)
 
 (defcfun gdk-draw-layout :void
   (drawable (g-object drawable))
 
 (defpackage :gdk
-  (:use :cl :gobject :cffi)
+  (:use :cl :gobject :cffi :pango)
   (:export #:gdk-window-events
            #:gdk-gc-set-rgb-fg-color
            #:gdk-drawable-get-size
 
                                      (:static-file "demo1.ui")
                                      (:static-file "text-editor.glade")
                                      (:static-file "text-editor.ui"))))
-  :depends-on (:cl-gtk2-glib :cffi :cl-gtk2-gdk :bordeaux-threads :iterate))
+  :depends-on (:cl-gtk2-glib :cffi :cl-gtk2-gdk :bordeaux-threads :iterate :cl-gtk2-pango))
 
 
 (export '(tree-row-reference-model tree-row-reference-path tree-row-reference-valid))
 
-(define-g-enum "PangoWrapMode" pango-wrap-mode
-    (:export t :type-initializer
-             "pango_wrap_mode_get_type")
-  (:word 0) (:char 1) (:word-char 2))
-
-(define-g-enum "PangoEllipsizeMode" pango-ellipsize-mode
-    (:export t :type-initializer
-             "pango_ellipsize_mode_get_type")
-  (:none 0) (:start 1) (:middle 2) (:end 3))
-
 (defcfun (adjustment-clamp-page "gtk_adjustment_clamp_page") :void
   (adjustment (g-object adjustment))
   (lower :double)
 
 (defpackage :gtk
-  (:use :cl :cffi :gobject :gdk :glib :iter)
+  (:use :cl :cffi :gobject :gdk :glib :iter :pango)
   (:export #:gtk-main
            #:gtk-main-quit
            #:dialog-run
 
 
 (export 'widget-create-pango-context)
 
-(defcfun (widget-get-pango-context "gtk_widget_get_pango_context") g-object
-  (widget g-object))
-
-(export 'widget-get-pango-context)
-
-(defcfun (widget-create-pango-layout "gtk_widget_create_pango_layout") (g-object gdk::pango-layout :already-referenced)
+(defcfun (widget-create-pango-layout "gtk_widget_create_pango_layout") (g-object pango-layout :already-referenced)
   (widget (g-object widget))
   (text :string))
 
 
--- /dev/null
+(defsystem :cl-gtk2-pango
+  :name :cl-gtk2-pango
+  :author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
+  :license "LLGPL"
+  :serial t
+  :components ((:file "pango.package")
+               (:file "pango.init")
+               (:file "pango"))
+  :depends-on (:cl-gtk2-glib :iterate))
\ No newline at end of file
 
--- /dev/null
+(in-package :pango)
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (define-foreign-library pango
+    (:unix "libpango-1.0.so.0")
+    (:windows "libpango-1.0-0.dll")
+    (t (:default "libgpango-1.0"))))
+
+(use-foreign-library pango)
+
 
--- /dev/null
+(in-package :pango)
+
+(define-g-enum "PangoWrapMode" pango-wrap-mode
+    (:export t :type-initializer
+             "pango_wrap_mode_get_type")
+  (:word 0) (:char 1) (:word-char 2))
+
+(export 'pango-wrap-mode)
+
+(define-g-enum "PangoEllipsizeMode" pango-ellipsize-mode
+    (:export t :type-initializer
+             "pango_ellipsize_mode_get_type")
+  (:none 0) (:start 1) (:middle 2) (:end 3))
+
+(export 'pango-ellipsize-mode)
+
+(define-g-object-class "PangoLayout" pango-layout (:type-initializer "pango_layout_get_type") ())
+
+(export 'pango-layout)
 
--- /dev/null
+(defpackage :pango
+  (:use :cl :iter :cffi :gobject :glib))