(defsystem :cl-gtk2-cairo
:name :cl-gtk2-cairo
- :version "0.1"
+ :version "0.1.1"
:author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
:license "LLGPL"
:serial t
@item @uref{http://common-lisp.net/project/cl-cairo2/,,cl-cairo2} (if you intend to use <code>cl-gtk2-gtkglext</code>)
@end itemize
-At first, source code should be downloded. Current version of CL-GTK2 can be downloaded from @uref{http://common-lisp.net/project/cl-gtk2/files/cl-gtk2-0.1.tar.gz}.
+At first, source code should be downloded. Current version of CL-GTK2 can be downloaded from @uref{http://common-lisp.net/project/cl-gtk2/files/cl-gtk2-0.1.1.tar.gz}.
Development tree of CL-GTK2 can be cloned with @uref{http://git-scm.org/,,Git}:
@example
(defsystem :cl-gtk2-gdk
:name :cl-gtk2-gdk
- :version "0.1"
+ :version "0.1.1"
:author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
:license "LLGPL"
:serial t
(defmethod translate-to-foreign (value (type gdk-atom-as-string-type))
(gdk-atom-intern value nil))
+(defcfun gdk-region-new :pointer)
+
+(define-g-boxed-opaque region nil :alloc (gdk-region-new))
+
+(export (boxed-related-symbols 'region))
+
+(define-g-boxed-cstruct point nil
+ (x :int :initform 0)
+ (y :int :initform 0))
+
+(export (boxed-related-symbols 'point))
+
+(define-g-boxed-cstruct span nil
+ (x :int :initform 0)
+ (y :int :initform 0)
+ (width :int :initform 0))
+
+(export (boxed-related-symbols 'span))
+
+(define-g-boxed-cstruct segment nil
+ (x1 :int :initform 0)
+ (y1 :int :initform 0)
+ (x2 :int :initform 0)
+ (y2 :int :initform 0))
+
+(export (boxed-related-symbols 'segment))
+
+(define-g-boxed-cstruct trapezoid nil
+ (y1 :double :initform 0d0)
+ (x11 :double :initform 0d0)
+ (x21 :double :initform 0d0)
+ (y2 :double :initform 0d0)
+ (x12 :double :initform 0d0)
+ (x22 :double :initform 0d0))
+
+(export (boxed-related-symbols 'trapezoid))
+
+(define-g-boxed-opaque font "GdkFont"
+ :alloc (error "GDK:FONT objects may not be allocated directly"))
+
+(export (boxed-related-symbols 'font))
+
+(define-g-boxed-cstruct color "GdkColor"
+ (pixel :uint32 :initform 0)
+ (red :uint16 :initform 0)
+ (green :uint16 :initform 0)
+ (blue :uint16 :initform 0))
+
+(export (boxed-related-symbols 'color))
+
+(define-g-object-class "GdkDrawable" drawable ()
+ ((:cffi display drawable-display (g-object display)
+ "gdk_drawable_get_display" nil)
+ (:cffi screen drawable-screen (g-object screen)
+ "gdk_drawable_get_screen" nil)
+ (:cffi visual drawable-visual (g-object visual)
+ "gdk_drawable_get_visual" nil)
+ (:cffi colormap drawable-colormap (g-object colormap)
+ "gdk_drawable_get_colormap" "gdk_drawable_set_colormap")
+ (:cffi depth drawable-depth :int
+ "gdk_drawable_get_depth" nil)
+ (:cffi clip-region drawable-clip-region (g-boxed-foreign region :return)
+ "gdk_drawable_get_clip_region" nil)
+ (:cffi visible-region drawable-visible-region (g-boxed-foreign region :return)
+ "gdk_drawable_get_visible_region" nil)))
+
(define-g-object-class "GdkWindow" gdk-window (:superclass drawable)
((:cffi window-type gdk-window-window-type gdk-window-type
"gdk_window_get_window_type" nil)
(:cffi window-stack screen-window-stack (glib:glist (g-object gdk-window) :free-from-foreign t)
"gdk_screen_get_window_stack" nil)))
-(defcfun gdk-region-new :pointer)
-
-(define-g-boxed-opaque region nil :alloc (gdk-region-new))
-
-(export (boxed-related-symbols 'region))
-
-(define-g-boxed-cstruct point nil
- (x :int :initform 0)
- (y :int :initform 0))
-
-(export (boxed-related-symbols 'point))
-
-(define-g-boxed-cstruct span nil
- (x :int :initform 0)
- (y :int :initform 0)
- (width :int :initform 0))
-
-(export (boxed-related-symbols 'span))
-
-(define-g-boxed-cstruct segment nil
- (x1 :int :initform 0)
- (y1 :int :initform 0)
- (x2 :int :initform 0)
- (y2 :int :initform 0))
-
-(export (boxed-related-symbols 'segment))
-
-(define-g-boxed-cstruct trapezoid nil
- (y1 :double :initform 0d0)
- (x11 :double :initform 0d0)
- (x21 :double :initform 0d0)
- (y2 :double :initform 0d0)
- (x12 :double :initform 0d0)
- (x22 :double :initform 0d0))
-
-(export (boxed-related-symbols 'trapezoid))
-
-(define-g-boxed-opaque font "GdkFont"
- :alloc (error "GDK:FONT objects may not be allocated directly"))
-
-(export (boxed-related-symbols 'font))
-
-(define-g-boxed-cstruct color "GdkColor"
- (pixel :uint32 :initform 0)
- (red :uint16 :initform 0)
- (green :uint16 :initform 0)
- (blue :uint16 :initform 0))
-
-(export (boxed-related-symbols 'color))
-
(define-g-object-class "GdkGC" graphics-context ()
((:cffi screen graphics-context-screen (g-object screen)
"gdk_gc_get_screen" nil)
(:cffi colormap graphics-context-colormap (g-object colormap)
"gdk_gc_get_colormap" "gdk_gc_set_colormap")))
-(define-g-object-class "GdkDrawable" drawable ()
- ((:cffi display drawable-display (g-object display)
- "gdk_drawable_get_display" nil)
- (:cffi screen drawable-screen (g-object screen)
- "gdk_drawable_get_screen" nil)
- (:cffi visual drawable-visual (g-object visual)
- "gdk_drawable_get_visual" nil)
- (:cffi colormap drawable-colormap (g-object colormap)
- "gdk_drawable_get_colormap" "gdk_drawable_set_colormap")
- (:cffi depth drawable-depth :int
- "gdk_drawable_get_depth" nil)
- (:cffi clip-region drawable-clip-region (g-boxed-foreign region :return)
- "gdk_drawable_get_clip_region" nil)
- (:cffi visible-region drawable-visible-region (g-boxed-foreign region :return)
- "gdk_drawable_get_visible_region" nil)))
-
(define-g-object-class "GdkPixmap" pixmap (:superclass drawable) ())
(define-g-object-class "GdkKeymap" keymap
(defcfun gdk-threads-leave :void)
(export 'gdk-threads-leave)
+(defmacro with-gdk-threads-lock (&body body)
+ `(progn
+ (gdk-threads-enter)
+ (unwind-protect
+ (progn ,@body)
+ (gdk-threads-leave))))
+(export 'with-gdk-threads-lock)
+
;; ignored:
;; void gdk_threads_set_lock_functions (GCallback enter_fn,
;; GCallback leave_fn);
(defsystem :cl-gtk2-glib
:name :cl-gtk2-glib
- :version "0.1"
+ :version "0.1.1"
:author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
:license "LLGPL"
:serial t
(defpackage :gobject
- (:use :cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop :gobject.ffi)
- #+(or clozure-common-lisp openmcl) (:shadowing-import-from :closer-mop #:defgeneric #:ensure-generic-function #:standard-generic-function)
+ (:use :c2cl :glib :cffi :tg :bordeaux-threads :iter :closer-mop :gobject.ffi)
(:export #:g-type
#:g-type-string
#:g-type-numeric
(defsystem :cl-gtk2-gtkglext
:name :cl-gtk2-gtkglext
- :version "0.1"
+ :version "0.1.1"
:author "Vitaly Mayatskikh <v.mayatskih@gmail.com>"
:license "LLGPL"
:serial t
+(defpackage #:cl-gtk2-gtk-system
+ (:use #:cl #:asdf))
+
+(in-package #:cl-gtk2-gtk-system)
+
+(defclass plain-file (static-file)
+ ((type :initarg :type :reader plain-file-type :initform nil)))
+
+(defmethod source-file-type ((c plain-file) (s module))
+ (plain-file-type c))
+
(defsystem :cl-gtk2-gtk
:name :cl-gtk2-gtk
- :version "0.1"
+ :version "0.1.1"
:author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
:license "LLGPL"
:serial t
(:file "gtk.demo")
(:file "gtk.timer")
(:module "demo-files"
- :pathname "demo"
- :components ((:static-file "demo1.glade")
- (:static-file "demo1.ui")
- (:static-file "text-editor.glade")
- (:static-file "text-editor.ui"))))
+ :pathname "demo/"
+ :components ((:plain-file "demo1" :type "ui")
+ (:plain-file "text-editor" :type "ui"))))
:depends-on (:cl-gtk2-glib :cffi :cl-gtk2-gdk :bordeaux-threads :iterate :cl-gtk2-pango))
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Wed Mar 18 23:56:40 2009 -->
-<glade-interface>
- <widget class="GtkWindow" id="window1">
- <property name="title" translatable="yes">Gtk Builder Demo</property>
- <property name="window_position">GTK_WIN_POS_CENTER</property>
- <property name="icon_name">gtk-unindent</property>
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuBar" id="menubar1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="menuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-new</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-open</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-save</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-save-as</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-quit</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="quit_cb"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-cut</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-copy</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-paste</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-delete</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_View</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-about</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="about_cb"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToolbar" id="toolbar1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkToolButton" id="toolbutton1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Button1</property>
- <property name="stock_id">gtk-about</property>
- <signal name="clicked" handler="toolbutton1_clicked_cb"/>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToggleToolButton" id="Red">
- <property name="visible">True</property>
- <property name="stock_id">gtk-no</property>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTextView" id="textview1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkStatusbar" id="statusbar1">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
-</glade-interface>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Thu Mar 19 02:56:11 2009 -->
-<glade-interface>
- <widget class="GtkWindow" id="window1">
- <property name="title" translatable="yes">Lisp IDE :)</property>
- <property name="window_position">GTK_WIN_POS_CENTER</property>
- <property name="default_width">300</property>
- <property name="default_height">200</property>
- <property name="icon_name">accessories-text-editor</property>
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuBar" id="menubar1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="menuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-new</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="new"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-open</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="open"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-save</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="save"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-save-as</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="save-as"/>
- </widget>
- </child>
- <child>
- <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-quit</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="quit"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-cut</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="cut"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-copy</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="copy"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-paste</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="paste"/>
- </widget>
- </child>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-delete</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="delete"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_View</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="menuitem4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="menu3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkImageMenuItem" id="imagemenuitem10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">gtk-about</property>
- <property name="use_underline">True</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="about"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToolbar" id="toolbar1">
- <property name="visible">True</property>
- <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
- <child>
- <widget class="GtkToolButton" id="toolbutton1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">New</property>
- <property name="stock_id">gtk-new</property>
- <signal name="clicked" handler="new"/>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToolButton" id="toolbutton2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Open</property>
- <property name="stock_id">gtk-open</property>
- <signal name="clicked" handler="open"/>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToolButton" id="toolbutton3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Save</property>
- <property name="stock_id">gtk-save</property>
- <signal name="clicked" handler="save"/>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkToolButton" id="toolbutton4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Save as</property>
- <property name="stock_id">gtk-save-as</property>
- <signal name="clicked" handler="save-as"/>
- </widget>
- </child>
- <child>
- <widget class="GtkToolButton" id="toolbutton5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Eval</property>
- <property name="stock_id">gtk-execute</property>
- <signal name="clicked" handler="eval"/>
- </widget>
- <packing>
- <property name="homogeneous">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTextView" id="textview1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkStatusbar" id="statusbar1">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
-</glade-interface>
; TODO: gtk_cell_renderer_stop_editing
(defcfun gtk-cell-renderer-get-fixed-size :void
- (cell g-object)
- (width :pointer)
- (height :pointer))
+ (cell (g-object cell-renderer))
+ (width (:pointer :int))
+ (height (:pointer :int)))
(defun cell-renderer-get-fixed-size (cell)
(with-foreign-objects ((width :int) (height :int))
(export 'cell-renderer-get-fixed-size)
-(defcfun gtk-cell-renderer-set-fixed-size :void
- (cell g-object)
+(defcfun (cell-renderer-set-fixed-size "gtk_cell_renderer_set_fixed_size") :void
+ (cell (g-object cell-renderer))
(width :int)
(height :int))
-(defun cell-renderer-set-fixed-size (cell width height)
- (gtk-cell-renderer-set-fixed-size cell width height))
-
(export 'cell-renderer-set-fixed-size)
; TODO: GtkCellRendererAccel
(defun container-call-get-property (container child property-name type)
(with-foreign-object (gvalue 'g-value)
- (g-value-unset gvalue)
+ (g-value-zero gvalue)
(g-value-init gvalue (ensure-g-type type))
(gtk-container-child-get-property container child property-name gvalue)
(prog1 (parse-g-value gvalue)
(defun test-pixbuf ()
"(not completed)"
(within-main-loop
- (let* ((window (make-instance 'gtk-window :title "Test pixbuf" :request-width 600 :request-height 240))
+ (let* ((window (make-instance 'gtk-window :title "Test pixbuf" :width-request 600 :height-request 240))
(vbox (make-instance 'v-box))
(eventbox (make-instance 'event-box))
(vbox-1 (make-instance 'v-box)))
(container-add window vbox)
- (box-pack-start vbox (make-instance 'label :text "Placing bg image" :font "Times New Roman Italic 10" :color "#00f" :request-height 40))
+ (box-pack-start vbox (make-instance 'label :text "Placing bg image" :font "Times New Roman Italic 10" :color "#00f" :height-request 40))
(g-signal-connect window "destroy" (lambda (w) (declare (ignore w)) (leave-gtk-main)))
(box-pack-start vbox eventbox)
(container-add eventbox vbox-1)
(in-package :gtk)
-(define-g-flags "GtkTargetFlags" target-flags
- (:export t :type-initializer "gtk_target_flags_get_type")
- (:same-app 1)
- (:same-widget 2)
- (:other-app 4)
- (:other-widget 8))
-
-(defcfun gtk-drag-finish :void
- (context g-object)
+(defcfun (drag-finish "gtk_drag_finish") :void
+ (context (g-object drag-context))
(success :boolean)
(del :boolean)
(time :uint32))
-(defun drag-finish (context success del time)
- (gtk-drag-finish context success del time))
-
(export 'drag-finish)
(at-init () (gtk-init))
-(defcfun gtk-main :void)
+(defcfun (%gtk-main "gtk_main") :void)
+
+(defun gtk-main ()
+ (with-gdk-threads-lock (%gtk-main)))
#+thread-support
(defvar *main-thread* nil)
(export 'tree-view-convert-widget-to-tree-coords)
(defcfun gtk-tree-view-enable-model-drag-dest :void
- (tree-view g-object)
+ (tree-view (g-object tree-view))
(targets :pointer)
(n-targets :int)
- (actions gdk:drag-action))
+ (actions gdk-drag-action))
(defun tree-view-enable-model-drag-dest (tree-view targets actions)
(with-foreign-boxed-array (n-targets targets-ptr target-entry targets)
(export 'tree-view-enable-model-drag-dest)
(defcfun gtk-tree-view-enable-model-drag-source :void
- (tree-view g-object)
- (start-button-mask gdk:modifier-type)
+ (tree-view (g-object tree-view))
+ (start-button-mask modifier-type)
(targets :pointer)
(n-targets :int)
- (actions gdk:drag-action))
+ (actions gdk-drag-action))
(defun tree-view-enable-model-drag-source (tree-view start-button-mask targets actions)
(with-foreign-boxed-array (n-targets targets-ptr target-entry targets)
; TOOD: gtk_tree_view_get_drag_dest_row
(defcfun gtk-tree-view-get-dest-row-at-pos :boolean
- (tree_view g-object)
+ (tree_view (g-object tree-view))
(drag-x :int)
(drag-y :int)
(path :pointer)
; TODO: GtkWidget
(define-g-boxed-cstruct selection-data "GtkSelectionData"
- (selection :pointer) ; GdkAtom
- (target :pointer) ; GdkAtom
- (type :pointer) ; GdkAtom
- (format :int)
- (data :pointer :initform 0)
- (length :int)
- (display g-object))
+ (selection gdk-atom-as-string :initform nil)
+ (target gdk-atom-as-string :initform nil)
+ (type gdk-atom-as-string :initform nil)
+ (format :int :initform 0)
+ (data :pointer :initform (null-pointer))
+ (length :int :initform 0)
+ (display (g-object display) :initform nil))
(export (boxed-related-symbols 'selection-data))
(defcstruct %gtk-widget
(:object %gtk-object)
(:private-flags :uint16)
- (:state state-type)
- (:saved-state state-type)
+ (:state :uint8)
+ (:saved-state :uint8)
(:name (:pointer :char))
(:style :pointer)
(:requisition requisition-cstruct)
(:parent :pointer))
(defun widget-state (widget)
- (foreign-slot-value (pointer widget) '%gtk-widget :state))
+ (convert-from-foreign (foreign-slot-value (pointer widget) '%gtk-widget :state) 'state-type))
(export 'widget-state)
(defun widget-saved-state (widget)
- (foreign-slot-value (pointer widget) '%gtk-widget :saved-state))
+ (convert-from-foreign (foreign-slot-value (pointer widget) '%gtk-widget :saved-state) 'state-type))
(export 'widget-saved-state)
(def-ui-child-packer box (b d child)
(let ((expand-prop (find :expand (ui-child-props d) :key #'ui-prop-name))
(fill-prop (find :fill (ui-child-props d) :key #'ui-prop-name))
- (padding-prop (find :padding (ui-child-props d) :key #'ui-prop-name)))
- `(box-pack-start ,b ,child
- ,@(when expand-prop (list :expand (ui-prop-value expand-prop)))
- ,@(when fill-prop (list :fill (ui-prop-value fill-prop)))
- ,@(when padding-prop (list :padding (ui-prop-value padding-prop))))))
+ (padding-prop (find :padding (ui-child-props d) :key #'ui-prop-name))
+ (pack-type-prop (find :pack-type (ui-child-props d) :key #'ui-prop-name)))
+ `(progn
+ (box-pack-start ,b ,child
+ ,@(when expand-prop (list :expand (ui-prop-value expand-prop)))
+ ,@(when fill-prop (list :fill (ui-prop-value fill-prop)))
+ ,@(when padding-prop (list :padding (ui-prop-value padding-prop))))
+ ,@(when pack-type-prop
+ (list `(setf (box-child-pack-type ,b ,child) ,(ui-prop-value pack-type-prop)))))))
(def-ui-child-packer paned (p d child)
(let ((resize-prop (find :resize (ui-child-props d) :key #'ui-prop-name))
(defsystem :cl-gtk2-pango
:name :cl-gtk2-pango
- :version "0.1"
+ :version "0.1.1"
:author "Kalyanov Dmitry <Kalyanov.Dmitry@gmail.com>"
:license "LLGPL"
:serial t