SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
‫به‬ ‫نگاهی‬Gtk+3
‫لزاده‬‌ ‫وکی‬ ‫علی‬
Gtk+
● Is a Widget Tookit
● Written In C
● Cross Platform
● Object Oriented
● LGPL 2
History
● 1995 Gimp Development Start
● 1996 Gimp First Public Release 0.54 (Motif)
● Gimp 0.60 (Gtk)
● Gimp 0.99 (Gtk+)
● 1997 Gnome Development started
● 1998 Gtk+ 1.0.6
● 1999 Gnome 1.0.0
● 2002 Gtk+ 2.0.9
● 2003 Gnome 2.0
● 2011 Gtk+ 3.0.11
● Gtk+ 3.1.10 (last version on git)
Gtk+
● The GTK+ library itself contains widgets,
that is, GUI components such as GtkButton or GtkTextView.
● GtkSwitch
● GtkApplication
● GtkSettings
● Theming Changes
1
2
3
GLib
A general-purpose utility library, not specific to graphical user interfaces. GLib
provides many useful data types, macros, type conversions, string utilities, file
utilities, a main loop abstraction, and so on.
● GLib Core Application Support
– Basic Data Types
– Threads
– Thread Pools
– GModule
– Asynchronous Queues
– Message Logging
Glib (2)
● GLib Utilities
– String Utility Functions
– Base64 Encoding
– Data Checksums
– Spawning Processes
– Commandline option parser
– Glob-style pattern matching (*.cpp)
– Perl-compatible RegEx
– Simple XML Parser
– Key-value file parser
● [First Group]
● # Comment
● Welcome=Hello
● Welcome[de]=Hallo
● GLib Data Types
– Linked Lists
– Hash Tables
– Strings
– Pointer Arrays
– Byte Arrays
– Balanced Binary Trees
GObject
A library that provides a type system, a collection of fundamental types including an
object type, a signal system.
● signals
● object-oriented C-based API
● automatic transparent API bindings to other compiled or interpreted languages.
Gobject Introspection
● Find where the function is located.
This probably means finding the binary generated by the C compiler which exports this
function.
● Load the code of the function in executable memory.
● Convert the Python parameters to C-compatible parameters before calling the
function.
● Call the function with the right calling convention.
● Convert the return values of the C function to Python-compatible variables to return
them to the Python code.
Gio
A modern, easy-to-use VFS API including abstractions for files, drives, volumes,
stream IO, as well as network programming and DBus communication.
● File Operations
● File System Monitoring
● Zlib compressor/decompressor
● Gmount
● Gsocket
● TLS (SSL) support
● D-Bus Support
● GSettings
Other libraries in Gtk
● Pango: Pango is a library for internationalized text handling. It centers around the
PangoLayout object, representing a paragraph of text. Pango provides the engine for
GtkTextView, GtkLabel, GtkEntry, and other widgets that display text.
● ATK: ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing
accessibility technologies to interact with a graphical user interface. For example, a
screen reader uses ATK to discover the text in an interface and read it to blind users.
GTK+ widgets have built-in support for accessibility using the ATK framework.
● Cairo: Cairo is a 2D graphics library with support for multiple output devices.
● GdkPixbuf: This is a small library which allows you to create GdkPixbuf ("pixel
buffer") objects from image data or image files. Use a GdkPixbuf in combination with
GtkImage to display images.
● GDK: GDK is the abstraction layer that allows GTK+ to support multiple windowing
systems. GDK provides window system facilities on X11, Windows, and OS X
External Libs
● LibGDA
● GtkWebkit
● LibPeas
– C
– Python
– JavaScript
Program Libraris
● Brasero
● Epiphany
● Evince
● Gstreamer
● Totem
● Glade
● Anjuta
● Rhythmbox
● Empathy
● Evolution
● Gedit
● Abiword
Language Bindings
Vala
● GObject Based Programming Language
● Java/C# Like syntax
● Can generate C code
● Cross Platform
Summery
● History
● Gtk+
● Glib
● GObject
● Gobject Introspection
● Gio
● Other libraries in Gtk
● External Libs
● Program Libraris
● Language Bindings
● Vala

Weitere ähnliche Inhalte

Was ist angesagt?

Gl tf siggraph-2013
Gl tf siggraph-2013Gl tf siggraph-2013
Gl tf siggraph-2013
Khaled MAMOU
 

Was ist angesagt? (20)

OpenNebulaConf2018 - OpenNebula and LXD Containers - Rubén S. Montero - OpenN...
OpenNebulaConf2018 - OpenNebula and LXD Containers - Rubén S. Montero - OpenN...OpenNebulaConf2018 - OpenNebula and LXD Containers - Rubén S. Montero - OpenN...
OpenNebulaConf2018 - OpenNebula and LXD Containers - Rubén S. Montero - OpenN...
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр Бурлука
 
BDE_SC4_WS3_6_Luigi Selmi - Pilot SC4
BDE_SC4_WS3_6_Luigi Selmi - Pilot SC4BDE_SC4_WS3_6_Luigi Selmi - Pilot SC4
BDE_SC4_WS3_6_Luigi Selmi - Pilot SC4
 
GlusterD - Daemon refactoring
GlusterD - Daemon refactoringGlusterD - Daemon refactoring
GlusterD - Daemon refactoring
 
RIPE74 - ARouteServer - IXP Automation Made Easy
RIPE74 - ARouteServer - IXP Automation Made EasyRIPE74 - ARouteServer - IXP Automation Made Easy
RIPE74 - ARouteServer - IXP Automation Made Easy
 
NUS-ISS Learning Day 2017 - Bots-Managed CloudOps
NUS-ISS Learning Day 2017 - Bots-Managed CloudOpsNUS-ISS Learning Day 2017 - Bots-Managed CloudOps
NUS-ISS Learning Day 2017 - Bots-Managed CloudOps
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testing
 
Git (Internals)
Git (Internals)Git (Internals)
Git (Internals)
 
Cassandra meetup slides - Oct 15 Santa Monica Coloft
Cassandra meetup slides - Oct 15 Santa Monica ColoftCassandra meetup slides - Oct 15 Santa Monica Coloft
Cassandra meetup slides - Oct 15 Santa Monica Coloft
 
OpenNebula LXD Container Support overview
OpenNebula LXD Container Support overviewOpenNebula LXD Container Support overview
OpenNebula LXD Container Support overview
 
20160401 Gluster-roadmap
20160401 Gluster-roadmap20160401 Gluster-roadmap
20160401 Gluster-roadmap
 
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureSC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architecture
 
Gl tf siggraph-2013
Gl tf siggraph-2013Gl tf siggraph-2013
Gl tf siggraph-2013
 
GIS on Rails by Oleksandr Kychun
GIS on Rails by Oleksandr Kychun GIS on Rails by Oleksandr Kychun
GIS on Rails by Oleksandr Kychun
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 
SqliteToRealm
SqliteToRealmSqliteToRealm
SqliteToRealm
 
BDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architecture
 
Autentia OS - 20180210 - Docker y las películas de chinos
Autentia OS - 20180210 - Docker y las películas de chinosAutentia OS - 20180210 - Docker y las películas de chinos
Autentia OS - 20180210 - Docker y las películas de chinos
 
Introduction to the Moby Project
Introduction to the Moby ProjectIntroduction to the Moby Project
Introduction to the Moby Project
 

Andere mochten auch

LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
Gwang Yoon Hwang
 

Andere mochten auch (7)

Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
 
Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)Multimedia in WebKitGTK+ (FOSDEM 2010)
Multimedia in WebKitGTK+ (FOSDEM 2010)
 
Introduce gobject introspection
Introduce gobject introspectionIntroduce gobject introspection
Introduce gobject introspection
 
Gnome census
Gnome censusGnome census
Gnome census
 
Gtk development-using-glade-3
Gtk development-using-glade-3Gtk development-using-glade-3
Gtk development-using-glade-3
 
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+LCA2013 :  Implementing threaded accelerated compositing in WebKitGtk+
LCA2013 : Implementing threaded accelerated compositing in WebKitGtk+
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
 

Ähnlich wie نگاهی به Gtk3

Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture
동수 장
 
cauldron-2022-docs-bof at gcc cauldron in 2022
cauldron-2022-docs-bof at gcc cauldron in 2022cauldron-2022-docs-bof at gcc cauldron in 2022
cauldron-2022-docs-bof at gcc cauldron in 2022
ssuser866937
 
Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)
Yuren Ju
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
Girish Ghate
 

Ähnlich wie نگاهی به Gtk3 (20)

gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 
G T K+ 101
G T K+ 101G T K+ 101
G T K+ 101
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugc
 
Pygtk
PygtkPygtk
Pygtk
 
Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
cauldron-2022-docs-bof at gcc cauldron in 2022
cauldron-2022-docs-bof at gcc cauldron in 2022cauldron-2022-docs-bof at gcc cauldron in 2022
cauldron-2022-docs-bof at gcc cauldron in 2022
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 
Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)Javascript in linux desktop (ICOS ver.)
Javascript in linux desktop (ICOS ver.)
 
Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)Graphics Programming in C under GNU Linux (Ubuntu distribution)
Graphics Programming in C under GNU Linux (Ubuntu distribution)
 
Opensource Software usability
Opensource Software usabilityOpensource Software usability
Opensource Software usability
 
GNOME development on Tizen Mobile
GNOME development on Tizen MobileGNOME development on Tizen Mobile
GNOME development on Tizen Mobile
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
 
Programming with OpenGL
Programming with OpenGLProgramming with OpenGL
Programming with OpenGL
 
State of the GNOME - 2022 - Ubuntu Summit
State of the GNOME - 2022 - Ubuntu SummitState of the GNOME - 2022 - Ubuntu Summit
State of the GNOME - 2022 - Ubuntu Summit
 
Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)Javascript, the GNOME way (JSConf EU 2011)
Javascript, the GNOME way (JSConf EU 2011)
 
Porting the Source Engine to Linux: Valve's Lessons Learned
Porting the Source Engine to Linux: Valve's Lessons LearnedPorting the Source Engine to Linux: Valve's Lessons Learned
Porting the Source Engine to Linux: Valve's Lessons Learned
 
OpenGL Introduction.
OpenGL Introduction.OpenGL Introduction.
OpenGL Introduction.
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

نگاهی به Gtk3

  • 2. Gtk+ ● Is a Widget Tookit ● Written In C ● Cross Platform ● Object Oriented ● LGPL 2
  • 3. History ● 1995 Gimp Development Start ● 1996 Gimp First Public Release 0.54 (Motif) ● Gimp 0.60 (Gtk) ● Gimp 0.99 (Gtk+) ● 1997 Gnome Development started ● 1998 Gtk+ 1.0.6 ● 1999 Gnome 1.0.0 ● 2002 Gtk+ 2.0.9 ● 2003 Gnome 2.0 ● 2011 Gtk+ 3.0.11 ● Gtk+ 3.1.10 (last version on git)
  • 4. Gtk+ ● The GTK+ library itself contains widgets, that is, GUI components such as GtkButton or GtkTextView. ● GtkSwitch ● GtkApplication ● GtkSettings ● Theming Changes 1 2 3
  • 5. GLib A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. ● GLib Core Application Support – Basic Data Types – Threads – Thread Pools – GModule – Asynchronous Queues – Message Logging
  • 6. Glib (2) ● GLib Utilities – String Utility Functions – Base64 Encoding – Data Checksums – Spawning Processes – Commandline option parser – Glob-style pattern matching (*.cpp) – Perl-compatible RegEx – Simple XML Parser – Key-value file parser ● [First Group] ● # Comment ● Welcome=Hello ● Welcome[de]=Hallo ● GLib Data Types – Linked Lists – Hash Tables – Strings – Pointer Arrays – Byte Arrays – Balanced Binary Trees
  • 7. GObject A library that provides a type system, a collection of fundamental types including an object type, a signal system. ● signals ● object-oriented C-based API ● automatic transparent API bindings to other compiled or interpreted languages.
  • 8. Gobject Introspection ● Find where the function is located. This probably means finding the binary generated by the C compiler which exports this function. ● Load the code of the function in executable memory. ● Convert the Python parameters to C-compatible parameters before calling the function. ● Call the function with the right calling convention. ● Convert the return values of the C function to Python-compatible variables to return them to the Python code.
  • 9. Gio A modern, easy-to-use VFS API including abstractions for files, drives, volumes, stream IO, as well as network programming and DBus communication. ● File Operations ● File System Monitoring ● Zlib compressor/decompressor ● Gmount ● Gsocket ● TLS (SSL) support ● D-Bus Support ● GSettings
  • 10. Other libraries in Gtk ● Pango: Pango is a library for internationalized text handling. It centers around the PangoLayout object, representing a paragraph of text. Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display text. ● ATK: ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK+ widgets have built-in support for accessibility using the ATK framework. ● Cairo: Cairo is a 2D graphics library with support for multiple output devices. ● GdkPixbuf: This is a small library which allows you to create GdkPixbuf ("pixel buffer") objects from image data or image files. Use a GdkPixbuf in combination with GtkImage to display images. ● GDK: GDK is the abstraction layer that allows GTK+ to support multiple windowing systems. GDK provides window system facilities on X11, Windows, and OS X
  • 11. External Libs ● LibGDA ● GtkWebkit ● LibPeas – C – Python – JavaScript
  • 12. Program Libraris ● Brasero ● Epiphany ● Evince ● Gstreamer ● Totem ● Glade ● Anjuta ● Rhythmbox ● Empathy ● Evolution ● Gedit ● Abiword
  • 14. Vala ● GObject Based Programming Language ● Java/C# Like syntax ● Can generate C code ● Cross Platform
  • 15. Summery ● History ● Gtk+ ● Glib ● GObject ● Gobject Introspection ● Gio ● Other libraries in Gtk ● External Libs ● Program Libraris ● Language Bindings ● Vala