Your SlideShare is downloading. ×
0
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
SqueakGTK
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SqueakGTK

683

Published on

SqueakGTK. Gwenael Casaccio. ESUG 2008, Amsterdam

SqueakGTK. Gwenael Casaccio. ESUG 2008, Amsterdam

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
683
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SqueakGTK Gwenael Casaccio
  • 2. SqueakGTK • Presentation of GTK+ • GLib • GDK, Pango, Cairo • GTK+ • SqueakGTK tools (Omnibrowser, launcher) • To do • Conclusions
  • 3. GTK+ • Open source toolkit (LGPL) • Created for the GIMP • Written in C • Multi platform
  • 4. GTK+ X11 Win32 (Quartz) GLib GDK Pango Cairo Figure 2.9: The GTK+ stack All parts of the GTK+ stack are written in C, and hence there is no support for object-orientation features in the language. GTK+ still boasts itself as an object-oriented toolkit. This is thanks to GObject, which is a part of GLib. GObject is an object system which is used extensively by GTK+. It is designed to be easy to be used by other programming languages, both interpreted and compiled. GObject supports object inheritance as well as interfaces. Objects can also have named properties. There also exists a general purpose notification mechanism for objects called signals. GTK+ Stack
  • 5. GLib • Cross platform utility • Linked list, hash tables, binary trees, ... • C object model : GObject • Fundamental types (Float, String, ...) • Enumeration
  • 6. GObject • Single inherited class structure • Signals • Independent type system (GType) • Memory management : reference counting
  • 7. GDK • Drawing : pixmaps, drawables, graphic pattern • Events : mouse, keyboard, window, ... • Fonts : metrics
  • 8. Pango • Rendering text • Internationalized • Different font backends • Integration with Cairo
  • 9. Cairo • Vector graphic-based • Device-independant API • 2D • Several backends (PDF, PostScript, SVG, ...) • GTK+ integration
  • 10. Cairo • Shape rendering • Alpha blending • Gradient drawing • OpenGL acceleration
  • 11. GTK+ • Now code our first application
  • 12. GTK+ • First create a window
  • 13. GTK+ • Now how to add a widget ?
  • 14. Widgets
  • 15. Widgets • ...
  • 16. Layout • GtkFixed
  • 17. Layouts • GtkVBox
  • 18. Layouts • GtkTable
  • 19. GTK+ Events • when: anEvent send: aMessage to: anObject • when: anEvent do: aBloc
  • 20. inside GTK+ • Each GtkWidget inherit from GPointer • C pointer store in a ByteArray • Each Gtk classes call primitives
  • 21. inside GTK+ events • Handle events : • Do we have an event ? • Handle events
  • 22. GTK+ • Events • Active waiting for events (morphs, ...) • GTK+ events handling first process : [self waitForEvents] repeat. Second process : [self handleEvents] repeat.
  • 23. SqueakGTK • Omnibrowser • Launcher • Inspector • Browser
  • 24. To do • Restore the state of the interface • Write tutorials • Improve the tools • Create a desktop • Support of GObjectInspector • ...
  • 25. Conclusion • Support multiple operating system • Powerful and flexible user interface • Stable • http://code.google.com/p/squeakgtk/

×