(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>
(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)
(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)
(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