Blame platform-demos/el/hellognome.js.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="topic" style="task" id="hellognome.js" xml:lang="el">
Packit 1470ea
  <info>
Packit 1470ea
    <link type="guide" xref="beginner.js#tutorials"/>
Packit 1470ea
    <revision version="0.1" date="2012-07-17" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Taryn Fox</name>
Packit 1470ea
      <email its:translate="no">jewelfox@fursona.net</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Η πρώτη σας εφαρμογή σε GNOME!</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Ελληνική μεταφραστική ομάδα GNOME</mal:name>
Packit 1470ea
      <mal:email>team@gnome.gr</mal:email>
Packit 1470ea
      <mal:years>2012-2015</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Δημήτρης Σπίγγος</mal:name>
Packit 1470ea
      <mal:email>dmtrs32@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2012, 2013</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Μαρία Θουκιδίδου</mal:name>
Packit 1470ea
      <mal:email>marablack3@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2014</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Θάνος Τρυφωνίδης</mal:name>
Packit 1470ea
      <mal:email>tomtryf@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2014, 2015</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>1. Hello, GNOME!</title>
Packit 1470ea
  <synopsis>
Packit 1470ea
    

Αυτό το μάθημα θα σας δείξει πώς να γράψετε την πρώτη σας εφαρμογή GNOME σε JavaScript. Θα χρησιμοποιήσετε JavaScript για να γράψετε για GNOME με τον ίδιο τρόπο που θα έπρεπε για τον ιστό. Κατόπιν, θα μάθετε πώς να χρησιμοποιήσετε "native" γραφικά στοιχεία, για να γράψετε εφαρμογές που δείχνουν και αισθάνονται σαν άλλες εφαρμογές GNOME.

Packit 1470ea
    <note style="warning">

Έχετε πάρει τον υπολογιστή σας με εγκατεστημένο το GNOME και <link xref="set-up-gedit.js">gedit</link> ρυθμισμένο να γράφει κώδικα με ?. Θα θέλετε να κάνετε αυτά τα πράγματα πρώτα.

</note>
Packit 1470ea
  </synopsis>
Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="webapp">
Packit 1470ea
    <title>Ας αρχίσουμε με μια ιστοσελίδα</title>
Packit 1470ea
Packit 1470ea
    

Ιδού κάποιος βασικός κώδικας HTML, CSS και JavaScript. Σας φαίνεται αυτός οικείος;

Packit 1470ea
    
Packit 1470ea
<!DOCTYPE html>
Packit 1470ea
<html>
Packit 1470ea
    <head>
Packit 1470ea
        <title>Hello, GNOME!</title>
Packit 1470ea
Packit 1470ea
        <!-- Use JavaScript to show a greeting when someone clicks the button -->
Packit 1470ea
        <script type="application/javascript">
Packit 1470ea
        function greeting () {
Packit 1470ea
            document.getElementById ("greeting").innerHTML = ("O hai!");
Packit 1470ea
        }
Packit 1470ea
        </script>
Packit 1470ea
Packit 1470ea
        <!-- Very basic CSS style using the GNOME font -->
Packit 1470ea
        <style type="text/css">
Packit 1470ea
            body {
Packit 1470ea
                font-face: Cantarell, sans-serif;
Packit 1470ea
                text-align: center; }
Packit 1470ea
        </style>
Packit 1470ea
Packit 1470ea
    </head>
Packit 1470ea
    <body>
Packit 1470ea
        <br /> <br />
Packit 1470ea
        <button type="button" onclick="greeting()">Hello, GNOME!</button>
Packit 1470ea
Packit 1470ea
        <!-- Empty H1 element gets filled in when the button is clicked -->
Packit 1470ea
        <h1 id="greeting"></h1>
Packit 1470ea
    </body>
Packit 1470ea
</html>
Packit 1470ea
Packit 1470ea
Packit 1470ea
    

Ας το αποθηκεύσουμε ως <file>hellognome.html</file> και να δούμε πώς φαίνεται όταν τον εκτελούμε!

Packit 1470ea
Packit 1470ea
    <media type="image" mime="image/png" src="media/hellognomewebapp.png"/>
Packit 1470ea
Packit 1470ea
    

Μπορείτε να εκτελέσετε τον παραπάνω κώδικα ανοίγοντας το <file>hellognome.html</file> σε έναν περιηγητή ιστού. Αλλά εδώ, πρόκειται να δημιουργήσουμε μια εφαρμογή GNOME που τρέχει την εφαρμογή ιστού μας μέσα του, ακριβώς όπως βλέπετε στο στιγμιότυπο. Θα μπορέσετε να αυξομειώσετε και να μεγιστοποιήσετε το παράθυρο και πατώντας το Χ στη γωνία να το κλείσετε, ακριβώς όπως θα περιμένατε από κάθε άλλη εφαρμογή GNOME. Η διαφορά είναι ότι αυτό θα εκτελέσει τον κώδικα του ιστού μέσα του.

Packit 1470ea
    

Το άριστο μέρος; Πρόκειται να συνεχίσουμε να χρησιμοποιούμε JavaScript, να γράψουμε όλα τα μέρη που κάνουν την εφαρμογή μας να δουλεύει με GNOME. Ας κοιτάξουμε τον κώδικα και ας δούμε πώς τελειώνει!

Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="window">
Packit 1470ea
    <title>Δημιουργία ενός παραθύρου GNOME ως πλαισίου για την εφαρμογή μας</title>
Packit 1470ea
Packit 1470ea
    

Πρώτα, χρειαζόμαστε να πούμε στο GNOME ότι αυτή είναι μια εφαρμογή JavaScript, που χρησιμοποιεί gjs. Gjs είναι ένας τρόπος του GNOME να μετατρέπει τον κώδικα σας JavaScript σε οδηγίες που καταλαβαίνει, έτσι αυτή η γραμμή πρέπει πάντα να πηγαίνει στην αρχή των εφαρμογών σας.

Packit 1470ea
    
Packit 1470ea
#!/usr/bin/gjs
Packit 1470ea
Packit 1470ea
    

Μετά από αυτό, χρειαζόμαστε να πούμε στο GNOME ποιες βιβλιοθήκες θέλουμε να εισάγουμε.

Packit 1470ea
    
Packit 1470ea
const GLib = imports.gi.GLib;
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
const Lang = imports.lang;
Packit 1470ea
const Webkit = imports.gi.WebKit;
Packit 1470ea
Packit 1470ea
    

Πώς πρόσθετες βιβλιοθήκες όπως η jQuery μας επιτρέπουν να κάνουμε πρόσθετα πράγματα με την JavaScript, καθεμιά από αυτές τις βιβλιοθήκες μας δίνει νέες δυνατότητες για τις εφαρμογές μας στο GNOME:

Packit 1470ea
    <steps>
Packit 1470ea
      <item>

<file>Gtk</file> και <file>Lang</file> είναι βασικά μέρη κάθε εφαρμογής GNOME, που σας επιτρέπει να δημιουργήσετε παράθυρα και γραφικά στοιχεία και να τα συνδέσετε μαζί.

</item>
Packit 1470ea
      <item>

Η <file>GLib</file> είναι μια βοηθητική βιβλιοθήκη, που επιτρέπει να κάνετε πράγματα όπως να πείτε στο GNOME πού είναι το αρχείο <file>hellognome.html</file>που δημιουργήσαμε.

</item>
Packit 1470ea
      <item>

Και το <file>Webkit</file> είναι μια μηχανή απόδοσης ιστού, που θα χρησιμοποιήσουμε για να δημιουργήσουμε βασικά ένα παράθυρο περιηγητή για να ανοίξουμε το αρχείο μας HTML.

</item>
Packit 1470ea
    </steps>
Packit 1470ea
Packit 1470ea
    

Τώρα δημιουργούμε την ίδια την εφαρμογή:

Packit 1470ea
    
Packit 1470ea
const HelloGNOME = new Lang.Class ({
Packit 1470ea
    Name: 'Hello GNOME',
Packit 1470ea
Packit 1470ea
    

Αυτό θα δείχνει οικείο σε σας εάν έχετε δουλέψει με αντικειμενοστραφή JavaScript πριν. Αυτό είναι σωστό· όλη μας η εφαρμογή είναι μια κλάση που λέγεται HelloGNOME. Και όπως μπορείτε να δείτε, της δώσαμε μια ιδιότητα που λέει ποιο είναι το όνομά της.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
    // Δημιουργία της εφαρμογής αυτής καθεαυτής
Packit 1470ea
    _init: function () {
Packit 1470ea
        this.application = new Gtk.Application ();
Packit 1470ea
Packit 1470ea
        // Σύνδεση των σημάτων 'activate' και 'startup' με τις συναρτήσεις επανάκλησης
Packit 1470ea
        this.application.connect('activate', Lang.bind(this, this._onActivate));
Packit 1470ea
        this.application.connect('startup', Lang.bind(this, this._onStartup));
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    // Η συνάρτηση επανάκλησης για το σήμα 'activate' παρουσιάζει παράθυρα όταν είναι ενεργή
Packit 1470ea
    _onActivate: function () {
Packit 1470ea
        this._window.present ();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    // Η συνάρτηση επανάκλησης για το σήμα 'startup' δομεί τη διεπαφή χρήστη
Packit 1470ea
    _onStartup: function () {
Packit 1470ea
        this._buildUI ();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
    

Ιδού μερικός κώδικας που περισσότερο ή λιγότερο θα αντιγράψετε και θα επικολλήσετε για κάθε εφαρμογή JavaScript που κατασκευάζετε. Δημιουργεί μια νέα εφαρμογή και έπειτα συνδέει τα ενεργοποιημένα και αρχικά σήματα της με συναρτήσεις που κάνουν το παράθυρο να εμφανίζεται το ίδιο και να κατασκευάζει τη διεπαφή χρήστη της αντίστοιχα.

Packit 1470ea
    

Τι σημαίνει αυτό; Λοιπόν, το καθετί σε μια εφαρμογή GNOME στέλνει ένα σήμα όταν κάτι σημαντικό συμβαίνει. Ένα κουμπί μπορεί να στέλνει το πατημένο σήμα όταν το πατάτε, για παράδειγμα. Η δουλειά μας είναι να συνδέσουμε τα σήματα με τις συναρτήσεις που τις χειρίζονται και να κάνουμε τα πράγματα που θέλουμε να έχουν συμβεί να γίνουν. Το κάνουμε χρησιμοποιώντας τη μέθοδο σύνδεσης κάθε αντικειμένου, που παίρνει δύο ορίσματα: Το σήμα που θέλουμε να χειριστούμε και τη συνάρτηση Lang.bind, που πρέπει να χρησιμοποιήσουμε για να πούμε στη σύνδεση ποια συνάρτηση θέλουμε να χειριστεί το σήμα.

Packit 1470ea
    

Σε αυτήν την περίπτωση, θέλουμε την _onActivate να χειριστεί το ενεργοποιημένο σήμα και το _onStartup να χειριστεί το αρχικό σήμα. Η _onActivate απλά λέει στο παράθυρο να παρουσιάσει τον εαυτόν του· έτσι βασικά, όποτε πατάτε <keyseq><key>Alt</key> <key>Tab</key></keyseq> στην εφαρμογή φαίνεται, όπως θα το περιμένατε. Η _onStartup καλεί _buildUI, που είναι η συνάρτηση που δημιουργεί τη διεπαφή χρήστη μας και είναι το επόμενο μέρος που θα κοιτάξουμε.

Packit 1470ea
    <note style="tip">

Όταν αντιγράφετε και επικολλάτε τον παραπάνω κώδικα για τις δικές σας εφαρμογές, βεβαιωθείτε να αλλάξετε το όνομα σε ένα μοναδικό κάθε φορά.

</note>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="ui">
Packit 1470ea
    <title>Σχεδίαση της UI του παραθύρου μας</title>
Packit 1470ea
    

Στη συνάρτηση _buildUI, πρόκειται να πούμε στο GNOME για το παράθυρό μας και τα πράγματα μέσα του, ένα τη φορά. Μετά από αυτό, πρόκειται να συνδέσουμε το καθετί μαζί και να το βάλουμε όλο σε προβολή.

Packit 1470ea
Packit 1470ea
    
Packit 1470ea
    // Δόμηση της διεπαφής χρήστη της εφαρμογής
Packit 1470ea
    _buildUI: function () {
Packit 1470ea
Packit 1470ea
        // Δημιουργία του παραθύρου της εφαρμογής
Packit 1470ea
        this._window = new Gtk.ApplicationWindow  ({
Packit 1470ea
            application: this.application,
Packit 1470ea
            title: "Welcome to GNOME",
Packit 1470ea
            default_height: 200,
Packit 1470ea
            default_width: 400,
Packit 1470ea
            window_position: Gtk.WindowPosition.CENTER });
Packit 1470ea
Packit 1470ea
Packit 1470ea
    

Το πρώτο αντικείμενο που δημιουργούμε είναι ένα ApplicationWindow. Χρειάζεται έναν τίτλο να μπει στη γραμμή τίτλου και η ιδιότητα εφαρμογής του χρειάζεται να είναι η εφαρμογή που δημιουργήσαμε, παραπάνω. Πέρα από αυτό, υπάρχουν ποικίλοι τρόποι προσαρμογής της εμφάνισης του, που η σελίδα αναφοράς <link xref="GtkApplicationWindow.js">ApplicationWindow</link> θα μπει σε περισσότερες λεπτομέρειες. Όπως μπορείτε να δείτε εδώ, του δίνουμε ένα προεπιλεγμένο ύψος και πλάτος (μετρημένο σε εικονοστοιχεία) και λέμε στο GNOME ότι θέλουμε το παράθυρο μας να εμφανιστεί στο κέντρο της οθόνης.

Packit 1470ea
    
Packit 1470ea
        // Δημιουργία μιας προβολής ιστού για προβολή της εφαρμογής ιστού
Packit 1470ea
        this._webView = new Webkit.WebView ();
Packit 1470ea
Packit 1470ea
        // Τοποθέτηση της εφαρμογής ιστού στην προβολή ιστού
Packit 1470ea
        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +
Packit 1470ea
            "/hellognome.html", null));
Packit 1470ea
Packit 1470ea
    

Να θυμάστε πώς εισάγαμε το Webkit δεξιά στην αρχή. Εδώ δημιουργούμε ένα νέο στιγμιότυπο της κλάσης Webkit που λέγεται μια WebView, που είναι περισσότερο ή λιγότερο ένα παράθυρο περιηγητή όπου μπορείτε να βάλετε μέσα την εφαρμογή σας. Μετά από αυτό, του δίνουμε έπειτα την URI που θέλουμε να φορτώσει όταν η εφαρμογή ξεκινά.

Packit 1470ea
    

Θα μπορούσαμε να του δώσουμε μόνο μια URI ιστού, όπως <link href="http://gnome.org">http://gnome.org</link>. Αντίθετα, εδώ χρησιμοποιούμε λίγες βοηθητικές συναρτήσεις του GLib για να πούμε στο WebView που είναι το αρχείο μας <file>hellognome.html</file>. Ο GLib.get_current_dir επιστρέφει τον κατάλογο που εκτελείται η εφαρμογή μας και το GLib.filename_to_uri επιστρέφει τη διαδρομή του αρχείου μας και το όνομα αρχείου σε μια URI που η συνάρτηση load_uri της WebView καταλαβαίνει. (η δεύτερη παράμετρος filename_to_uri's πρέπει να είναι μηδέν εκτός και ξέρετε τι χρησιμοποιείται και έχετε έναν λόγο να το αλλάξετε.)

Packit 1470ea
    
Packit 1470ea
        // Τοποθέτηση της προβολής ιστού στο παράθυρο
Packit 1470ea
        this._window.add (this._webView);
Packit 1470ea
Packit 1470ea
        // Εμφάνιση του παραθύρου και όλων των θυγατρικών γραφικών στοιχείων
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    },
Packit 1470ea
Packit 1470ea
});
Packit 1470ea
Packit 1470ea
    

Κάθε παράθυρο μπορεί να κρατήσει ένα και μόνο ένα γραφικό στοιχείο. Κανονικά, θα πρέπει να χρησιμοποιήσουμε έναν περιέκτη γραφικού στοιχείου όπως ένα <link xref="grid.js">πλέγμα</link> για να βάλουμε πολλαπλά γραφικά στοιχεία σε αυτό, έπειτα χρησιμοποιήστε τη συνάρτηση προσθήκης παραθύρου για να προσθέσετε το πλέγμα σε αυτό. Εδώ, προσθέτουμε απλά την WebView, έτσι ώστε να είναι ότι προσθέτουμε στο παράθυρο. Μετά από αυτό, ως το τελευταίο μέρος της συνάρτησης _buildUI που δημιουργεί το παράθυρο μας, λέμε στο παράθυρο να εμφανίσει τον εαυτόν του και τα περιεχόμενά του.

Packit 1470ea
    
Packit 1470ea
// Εκτέλεση της εφαρμογής
Packit 1470ea
let app = new HelloGNOME ();
Packit 1470ea
app.application.run (ARGV);
Packit 1470ea
Packit 1470ea
    

Τελικά, δημιουργούμε ένα νέο στιγμιότυπο της κλάσης HelloGNOME και λέμε στο GNOME να εκτελέσει την εφαρμογή.

Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="run">
Packit 1470ea
    <title>Εκτέλεση της εφαρμογής σας GNOME</title>
Packit 1470ea
Packit 1470ea
    

Τώρα που έχουμε δημιουργήσει την πρώτη μας εφαρμογή GNOME, είναι καιρός να τη δοκιμάσουμε! Δεν χρειάζεται να μεταγλωττίσετε την εφαρμογή σας ή να εγκαταστήσετε οποιοδήποτε ειδικό λογισμικό για αυτό· το GNOME έχει ενσωματωμένο το gjs για να μπορέσετε να εκτελέσετε το κέλυφος GNOME. Απλά αποθηκεύστε το <file>hellognome.html</file> και την ενεργή μας εφαρμογή, <file>hellognome.js</file>, σε έναν κατάλογο που μπορείτε να πάρετε με το τερματικό. (Συνήθως ανοίγουν στον προσωπικό σας κατάλογο, αυτόν που ονομάζεται με το όνομα σας του χρήστη.) Μετά από αυτό, ανοίξτε ένα τερματικό, πηγαίνετε εκεί και πληκτρολογήστε:

Packit 1470ea
    <screen> <output style="prompt">$ </output>gjs hellognome.js </screen>
Packit 1470ea
    

Θα πρέπει να δείτε πάνω κάτω το ίδιο στιγμιότυπο όπως πριν, με ένα κουμπί όπου μπορείτε να πατήσετε για να προκαλέσετε την εμφάνιση ενός σύντομου μηνύματος.

Packit 1470ea
Packit 1470ea
    <note style="tip">
Packit 1470ea
        

Μπορείτε να χρησιμοποιήσετε την εντολή τερματικού

Packit 1470ea
        <screen> <output style="prompt">$ </output>cd (directory name) </screen>
Packit 1470ea
        

για να περιηγηθείτε μεταξύ καταλόγων μες τον τερματικό, για να δείτε πού αποθηκεύσατε τα αρχεία. Υπάρχει επίσης μια επέκταση για τον Ναυτίλο, τον διαχειριστή αρχείων του GNOME, που σας επιτρέπει με δεξί κλικ οπουδήποτε μέσα του να ανοίξετε ένα τερματικό παράθυρο ακριβώς εκεί. Ελέγξτε την εφαρμογή που χρησιμοποιείτε για την εγκατάσταση νέου λογισμικού (όπως προσθήκη/αφαίρεση προγραμμάτων στο κέντρο λογισμικού) για αυτό.

Packit 1470ea
    </note>
Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="whatsnext">
Packit 1470ea
    <title>Ποιο είναι το επόμενο;</title>
Packit 1470ea
Packit 1470ea
    

<link xref="02_welcome_to_the_grid.js">Συνεχίστε με το επόμενο μάθημα</link> για να μάθετε πώς να δομήσετε "native" εφαρμογές GNOME που φαίνονται και αισθάνονται όπως οι άλλες, αντίθετα από μια προβολή ιστού με κώδικα HTML μέσα της. Ή ρίξτε μια ματιά σε κάποια <link xref="beginner.js#samples">δείγματα κώδικα</link>, εάν θα θέλατε να δείτε τον κώδικα του παραδείγματος για κάθε γραφικό στοιχείο Gtk.

Packit 1470ea
    

Τελικά, εάν θέλετε να κατασκευάσετε απλά εφαρμογές GNOME χρησιμοποιώντας βιβλιοθήκες JavaScript που σχεδιάστηκαν για τον ιστό, μπορείτε βασικά να σταματήσετε εδώ και να πάτε να το κάνετε! Ελέγξετε <link xref="beginner.js#tutorials">τα τελευταία μαθήματα</link> εάν θα θέλατε να δείτε τη δημιουργία ενός αρχείου .desktop για την εφαρμογή σας, που θα επιτρέψει την εμφάνισή του στο μενού ενεργειών της επιφάνειας εργασίας σας με όλες τις άλλες εφαρμογές σας.

Packit 1470ea
  </section>
Packit 1470ea
Packit 1470ea
  <section id="complete">
Packit 1470ea
    <title>Δείγμα πλήρους κώδικα</title>
Packit 1470ea
#!/usr/bin/gjs
Packit 1470ea
Packit 1470ea
imports.gi.versions.Gtk = '3.0';
Packit 1470ea
Packit 1470ea
const GLib = imports.gi.GLib;
Packit 1470ea
const Gtk = imports.gi.Gtk;
Packit 1470ea
const Webkit = imports.gi.WebKit;
Packit 1470ea
Packit 1470ea
class HelloGNOME {
Packit 1470ea
Packit 1470ea
    // Create the application itself
Packit 1470ea
    constructor() {
Packit 1470ea
        this.application = new Gtk.Application ();
Packit 1470ea
Packit 1470ea
        // Connect 'activate' and 'startup' signals to the callback functions
Packit 1470ea
        this.application.connect('activate', this._onActivate.bind(this));
Packit 1470ea
        this.application.connect('startup', this._onStartup.bind(this));
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Callback function for 'activate' signal presents windows when active
Packit 1470ea
    _onActivate() {
Packit 1470ea
        this._window.present();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Callback function for 'startup' signal builds the UI
Packit 1470ea
    _onStartup() {
Packit 1470ea
        this._buildUI();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
    // Build the application's UI
Packit 1470ea
    _buildUI() {
Packit 1470ea
Packit 1470ea
        // Create the application window
Packit 1470ea
        this._window = new Gtk.ApplicationWindow  ({
Packit 1470ea
            application: this.application,
Packit 1470ea
            title: "Welcome to GNOME",
Packit 1470ea
            default_height: 200,
Packit 1470ea
            default_width: 400,
Packit 1470ea
            window_position: Gtk.WindowPosition.CENTER });
Packit 1470ea
Packit 1470ea
        // Create a webview to show the web app
Packit 1470ea
        this._webView = new Webkit.WebView ();
Packit 1470ea
Packit 1470ea
        // Put the web app into the webview
Packit 1470ea
        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +
Packit 1470ea
            "/hellognome.html", null));
Packit 1470ea
Packit 1470ea
        // Put the webview into the window
Packit 1470ea
        this._window.add (this._webView);
Packit 1470ea
Packit 1470ea
        // Show the window and all child widgets
Packit 1470ea
        this._window.show_all();
Packit 1470ea
    }
Packit 1470ea
Packit 1470ea
};
Packit 1470ea
Packit 1470ea
// Run the application
Packit 1470ea
let app = new HelloGNOME ();
Packit 1470ea
app.application.run (ARGV);
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
</page>