Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

SqueakGTK

  • 950 views
Uploaded on

SqueakGTK. Gwenael Casaccio. ESUG 2008, Amsterdam

SqueakGTK. Gwenael Casaccio. ESUG 2008, Amsterdam

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
950
On Slideshare
950
From Embeds
0
Number of Embeds
0

Actions

Shares
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+ GDK Pango Cairo X11 Win32 (Quartz) GLib 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 GTK+ Stack 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.
  • 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/