Blame platform-demos/el/toolbar_builder.vala.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="guide" style="task" id="toolbar_builder.vala" xml:lang="el">
Packit 1470ea
  <info>
Packit 1470ea
  <title type="text">Η εργαλειοθήκη δημιουργήθηκε χρησιμοποιώντας Glade (Vala)</title>
Packit 1470ea
    <link type="guide" xref="beginner.vala#menu-combo-toolbar"/>
Packit 1470ea
    <link type="seealso" xref="toolbar.vala"/>
Packit 1470ea
    <link type="seealso" xref="grid.vala"/>
Packit 1470ea
    <revision version="0.1" date="2012-05-08" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Tiffany Antopolski</name>
Packit 1470ea
      <email its:translate="no">tiffany.antopolski@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Γραμμή κουμπιών</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>Η γραμμή εργαλείων δημιουργήθηκε χρησιμοποιώντας Glade</title>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/toolbar.png"/>
Packit 1470ea
  

Αυτό το παράδειγμα είναι παρόμοιο με <link xref="toolbar.vala"/>, εκτός από τη χρήση Glade για δημιουργία της γραμμής εργαλείων σε ένα αρχείο XML ui.

Packit 1470ea
Packit 1470ea
  

Για δημιουργία της γραμμής εργαλείων χρησιμοποιώντας το <link href="http://glade.gnome.org/">σχεδιαστή διεπαφής Glade</link>:

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

Άνοιγμα του Glade και αποθήκευση του αρχείου ως <file>toolbar_builder.ui</file>

Packit 1470ea
          

<media type="image" src="media/glade_ui.png" width="900"> Στιγμιότυπο διεπαφής του Glade </media>

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

Στο <gui>περιέκτες</gui> στα αριστερά, δεξί πάτημα στην εργαλειοθήκη και επιλογή <gui>προσθήκη γραφικού στοιχείου ως ανώτατου επιπέδου</gui>.

Packit 1470ea
          

<media type="image" src="media/glade_select_toolbar.png"> Στιγμιότυπο του εικονιδίου εργαλειοθήκης στο Glade ui </media>

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

Στην καρτέλα <gui>γενικά</gui> στα κάτω δεξιά, αλλαγή του <gui>ονόματος</gui> σε <input>γραμμή εργαλείων</input> και <gui>εμφάνιση βέλους</gui> σε <gui>όχι</gui>.

Packit 1470ea
          

<media type="image" src="media/glade_toolbar_general.png"> Στιγμιότυπο της καρτέλας Γενικά</media>

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

Στην καρτέλα <gui>κοινά</gui>, ορίστε <gui>οριζόντια επέκταση</gui> σε <gui>ναι</gui>.

Packit 1470ea
         

<media type="image" src="media/glade_toolbar_common.png"> Στιγμιότυπο της καρτέλας Κοινά </media>

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

Δεξί κλικ στη γραμμή εργαλείων στα πάνω δεξιά και επιλέξτε <gui>επεξεργασία</gui>. Το παράθυρο <gui>επεξεργαστής γραμμής εργαλείων</gui> θα εμφανιστεί.

Packit 1470ea
         

<media type="image" src="media/glade_toolbar_edit.png"> Στιγμιότυπο πού να δεξιοπατήσετε για να επεξεργαστείτε την εργαλειοθήκη. </media>

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

Θέλουμε να προσθέσουμε 5 κουμπιά εργαλείων: νέο, άνοιγμα, αναίρεση, πλήρης οθόνη και εγκατάλειψη πλήρους οθόνης. Πρώτα, θα προσθέσουμε το νέο ToolButton.

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

Στην καρτέλα <gui>ιεραρχία</gui>, πατήστε <gui>προσθήκη</gui>.

</item>
Packit 1470ea
       <item>

Αλλαγή του ονόματος του στοιχείου εργαλείου σε <input>new_button</input>.

</item>
Packit 1470ea
       <item>

Κύλιση προς τα κάτω και ρύθμιση του <gui>είναι σημαντικό</gui> σε <gui>ναι</gui>. Αυτό θα προκαλέσει την ετικέτα του ToolButton να εμφανιστεί, όταν προβάλετε τη γραμμή εργαλείων.

</item>
Packit 1470ea
       <item>

Εισάγετε το <gui>όνομα ενέργειας</gui>: <input>app.new</input>.

</item>
Packit 1470ea
       <item>

Αλλαγή του <gui>ετικέτα</gui> σε <input>New</input>.

</item>
Packit 1470ea
       <item>

Επιλογή του <gui>νέου</gui> αναγνωριστικού παρακαταθήκης από το πτυσσόμενο μενού, ή πληκτρολογήστε <input>gtk-new</input>.

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

Επανάληψη των παραπάνω βημάτων για τα υπολειπόμενα κουμπιά εργαλείων (ToolButtons), με τις παρακάτω ιδιότητες:

Packit 1470ea
  
Packit 1470ea
    
Packit 1470ea
      
Packit 1470ea
        

Όνομα

Packit 1470ea
        

Είναι σημαντικό

Packit 1470ea
        

Όνομα ενέργειας

Packit 1470ea
        

Ετικέτα

Packit 1470ea
        

Αναγνωριστικό παρακαταθήκης

Packit 1470ea
      
Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
      

open_button

Packit 1470ea
      

Ναι

Packit 1470ea
      

app.open

Packit 1470ea
      

Open

Packit 1470ea
      

gtk-open

Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
      

undo_button

Packit 1470ea
      

Ναι

Packit 1470ea
      

win.undo

Packit 1470ea
      

Αναίρεση

Packit 1470ea
      

gtk-undo

Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
      

fullscreen_button

Packit 1470ea
      

Ναι

Packit 1470ea
      

win.fullscreen

Packit 1470ea
      

Πλήρης οθόνη

Packit 1470ea
      

gtk-fullscreen

Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
      

leave_fullscreen_button

Packit 1470ea
      

Ναι

Packit 1470ea
      

win.fullscreen

Packit 1470ea
      

Έξοδος από πλήρη οθόνη

Packit 1470ea
      

gtk-leave-fullscreen

Packit 1470ea
    
Packit 1470ea
    
Packit 1470ea
Packit 1470ea
          <media type="image" src="media/glade_toolbar_editor.png">
Packit 1470ea
Packit 1470ea
          </media>
Packit 1470ea
    </item>
Packit 1470ea
Packit 1470ea
    <item>

Κλείσιμο του <gui>επεξεργαστή γραμμής εργαλείων</gui>.

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

Όταν το πρόγραμμά μας θα ξεκινήσει στην αρχή, δεν θέλουμε το ToolButton <gui>έξοδος από πλήρη οθόνη</gui> να είναι ορατό, αφού η εφαρμογή δεν θα είναι σε λειτουργία πλήρους οθόνης. Μπορείτε να το ρυθμίσετε στην καρτέλα <gui>κοινά</gui>, με κλικ στην ιδιότητα <gui>ορατό</gui> σε <gui>όχι</gui>. Το ToolButton θα εξακολουθεί να εμφανίζεται στον σχεδιαστή διεπαφής, αλλά θα συμπεριφέρεται σωστά, όταν το αρχείο φορτώνεται στον κώδικα προγράμματός σας.

Packit 1470ea
          

<media type="image" src="media/glade_visible_no.png"> Ορισμός της ιδιότητας ορατό σε Όχι </media>

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

Αποθήκευση της εργασίας σας και κλείσιμο του Glade.

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

Το δημιουργημένο αρχείο XML από το Glade εμφανίζεται παρακάτω. Αυτή είναι η περιγραφή της εργαλειοθήκης. Τη στιγμή της εγγραφής, η επιλογή προσθήκης στην κλάση Gtk.STYLE_CLASS_PRIMARY_TOOLBAR στην διεπαφή Glade δεν υπάρχει. Μπορούμε χειροκίνητα να το προσθέσουμε στο αρχείο XML. Για να το κάνουμε, προσθέστε τον παρακάτω κώδικα XML στη γραμμή 9 του <file>toolbar_builder.ui</file>:

Packit 1470ea
   
Packit 1470ea
  <style>
Packit 1470ea
     <class name="primary-toolbar"/>
Packit 1470ea
  </style>
Packit 1470ea
  
Packit 1470ea
  

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

Packit 1470ea
   </item>
Packit 1470ea
</steps>
Packit 1470ea
  <?xml version="1.0" encoding="UTF-8"?>
Packit 1470ea
<interface>
Packit 1470ea
  <!-- interface-requires gtk+ 3.0 -->
Packit 1470ea
  <object class="GtkToolbar" id="toolbar">
Packit 1470ea
    <property name="visible">True</property>
Packit 1470ea
    <property name="can_focus">False</property>
Packit 1470ea
    <property name="hexpand">True</property>
Packit 1470ea
    <property name="show_arrow">False</property>
Packit 1470ea
    <child>
Packit 1470ea
      <object class="GtkToolButton" id="new_button">
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="visible">True</property>
Packit 1470ea
        <property name="can_focus">False</property>
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="is_important">True</property>
Packit 1470ea
        <property name="action_name">app.new</property>
Packit 1470ea
        <property name="label" translatable="yes">New</property>
Packit 1470ea
        <property name="use_underline">True</property>
Packit 1470ea
        <property name="stock_id">gtk-new</property>
Packit 1470ea
      </object>
Packit 1470ea
      <packing>
Packit 1470ea
        <property name="expand">False</property>
Packit 1470ea
        <property name="homogeneous">True</property>
Packit 1470ea
      </packing>
Packit 1470ea
    </child>
Packit 1470ea
    <child>
Packit 1470ea
      <object class="GtkToolButton" id="open_button">
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="visible">True</property>
Packit 1470ea
        <property name="can_focus">False</property>
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="is_important">True</property>
Packit 1470ea
        <property name="action_name">app.open</property>
Packit 1470ea
        <property name="label" translatable="yes">Open</property>
Packit 1470ea
        <property name="use_underline">True</property>
Packit 1470ea
        <property name="stock_id">gtk-open</property>
Packit 1470ea
      </object>
Packit 1470ea
      <packing>
Packit 1470ea
        <property name="expand">False</property>
Packit 1470ea
        <property name="homogeneous">True</property>
Packit 1470ea
      </packing>
Packit 1470ea
    </child>
Packit 1470ea
    <child>
Packit 1470ea
      <object class="GtkToolButton" id="undo_button">
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="visible">True</property>
Packit 1470ea
        <property name="can_focus">False</property>
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="is_important">True</property>
Packit 1470ea
        <property name="action_name">win.undo</property>
Packit 1470ea
        <property name="label" translatable="yes">Undo</property>
Packit 1470ea
        <property name="use_underline">True</property>
Packit 1470ea
        <property name="stock_id">gtk-undo</property>
Packit 1470ea
      </object>
Packit 1470ea
      <packing>
Packit 1470ea
        <property name="expand">False</property>
Packit 1470ea
        <property name="homogeneous">True</property>
Packit 1470ea
      </packing>
Packit 1470ea
    </child>
Packit 1470ea
    <child>
Packit 1470ea
      <object class="GtkToolButton" id="fullscreen_button">
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="visible">True</property>
Packit 1470ea
        <property name="can_focus">False</property>
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="is_important">True</property>
Packit 1470ea
        <property name="action_name">win.fullscreen</property>
Packit 1470ea
        <property name="label" translatable="yes">Fullscreen</property>
Packit 1470ea
        <property name="use_underline">True</property>
Packit 1470ea
        <property name="stock_id">gtk-fullscreen</property>
Packit 1470ea
      </object>
Packit 1470ea
      <packing>
Packit 1470ea
        <property name="expand">False</property>
Packit 1470ea
        <property name="homogeneous">True</property>
Packit 1470ea
      </packing>
Packit 1470ea
    </child>
Packit 1470ea
    <child>
Packit 1470ea
      <object class="GtkToolButton" id="leave_fullscreen_button">
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="can_focus">False</property>
Packit 1470ea
        <property name="use_action_appearance">False</property>
Packit 1470ea
        <property name="is_important">True</property>
Packit 1470ea
        <property name="action_name">win.fullscreen</property>
Packit 1470ea
        <property name="label" translatable="yes">Leave Fullscreen</property>
Packit 1470ea
        <property name="use_underline">True</property>
Packit 1470ea
        <property name="stock_id">gtk-leave-fullscreen</property>
Packit 1470ea
      </object>
Packit 1470ea
      <packing>
Packit 1470ea
        <property name="expand">False</property>
Packit 1470ea
        <property name="homogeneous">True</property>
Packit 1470ea
      </packing>
Packit 1470ea
    </child>
Packit 1470ea
  </object>
Packit 1470ea
</interface>
Packit 1470ea
Packit 1470ea
Packit 1470ea
  

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

Packit 1470ea
/* This is the Window */
Packit 1470ea
class MyWindow : Gtk.ApplicationWindow {
Packit 1470ea
Packit 1470ea
	/* Declare these two ToolButtons, as we will get them
Packit 1470ea
	 * from the ui file (see lines 32 and 33), so we can
Packit 1470ea
	 * hide() and show() them as needed.*/
Packit 1470ea
	Gtk.ToolButton fullscreen_button;
Packit 1470ea
	Gtk.ToolButton leave_fullscreen_button;
Packit 1470ea
Packit 1470ea
	/* Constructor */
Packit 1470ea
	internal MyWindow (MyApplication app) {
Packit 1470ea
		Object (application: app, title: "Toolbar Example");
Packit 1470ea
Packit 1470ea
		this.set_default_size (400, 200);
Packit 1470ea
		var grid = new Gtk.Grid ();
Packit 1470ea
		this.add (grid);
Packit 1470ea
		grid.show ();
Packit 1470ea
Packit 1470ea
		/* add the toolbar from the ui file */
Packit 1470ea
		var builder = new Gtk.Builder ();
Packit 1470ea
		try {
Packit 1470ea
			builder.add_from_file ("toolbar_builder.ui");
Packit 1470ea
		}
Packit 1470ea
		/* Handle the exception */
Packit 1470ea
		catch (Error e) {
Packit 1470ea
			error ("Unable to load file: %s", e.message);
Packit 1470ea
		}
Packit 1470ea
Packit 1470ea
		grid.attach (builder.get_object ("toolbar") as Gtk.Toolbar, 0, 0, 1, 1);
Packit 1470ea
Packit 1470ea
		/* get these objects from the ui file so we can toggle between them */
Packit 1470ea
		fullscreen_button = builder.get_object ("fullscreen_button") as Gtk.ToolButton;
Packit 1470ea
		leave_fullscreen_button = builder.get_object ("leave_fullscreen_button") as Gtk.ToolButton;
Packit 1470ea
Packit 1470ea
		/* create the "undo" window action action */
Packit 1470ea
		var undo_action = new SimpleAction ("undo", null);
Packit 1470ea
		undo_action.activate.connect (undo_callback);
Packit 1470ea
		this.add_action (undo_action);
Packit 1470ea
Packit 1470ea
		/* create the "fullscreen" window action */
Packit 1470ea
		var fullscreen_action = new SimpleAction ("fullscreen", null);
Packit 1470ea
		fullscreen_action.activate.connect (fullscreen_callback);
Packit 1470ea
		this.add_action (fullscreen_action);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void undo_callback (SimpleAction simple, Variant? parameter) {
Packit 1470ea
			print ("You clicked \"Undo\".\n");
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void fullscreen_callback (SimpleAction simple, Variant? parameter) {
Packit 1470ea
		if ((this.get_window ().get_state () & Gdk.WindowState.FULLSCREEN) != 0) {
Packit 1470ea
			this.unfullscreen ();
Packit 1470ea
			leave_fullscreen_button.hide ();
Packit 1470ea
			fullscreen_button.show ();
Packit 1470ea
		}
Packit 1470ea
		else {
Packit 1470ea
			this.fullscreen ();
Packit 1470ea
			fullscreen_button.hide ();
Packit 1470ea
			leave_fullscreen_button.show ();
Packit 1470ea
		}
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
/* This is the application */
Packit 1470ea
class MyApplication : Gtk.Application {
Packit 1470ea
	protected override void activate () {
Packit 1470ea
		new MyWindow (this).show ();
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	protected override void startup () {
Packit 1470ea
		base.startup ();
Packit 1470ea
Packit 1470ea
		/* Create the "new" action and add it to the app*/
Packit 1470ea
		var new_action = new SimpleAction ("new", null);
Packit 1470ea
		new_action.activate.connect (new_callback);
Packit 1470ea
		this.add_action (new_action);
Packit 1470ea
Packit 1470ea
		/* Create the "open" action, and add it to the app */
Packit 1470ea
		var open_action = new SimpleAction ("open", null);
Packit 1470ea
		open_action.activate.connect (open_callback);
Packit 1470ea
		this.add_action (open_action);
Packit 1470ea
Packit 1470ea
		/* You could also add the action to the app menu
Packit 1470ea
		 * if you wanted to.
Packit 1470ea
		 */
Packit 1470ea
		//var menu = new Menu ();
Packit 1470ea
		//menu.append ("New", "app.new");
Packit 1470ea
		//this.app_menu = menu;
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void new_callback (SimpleAction action, Variant? parameter) {
Packit 1470ea
		print ("You clicked \"New\".\n");
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void open_callback (SimpleAction action, Variant? parameter) {
Packit 1470ea
			print ("You clicked \"Open\".\n");
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
/* The main function creates the application and runs it. */
Packit 1470ea
int main (string[] args) {
Packit 1470ea
	return new MyApplication ().run (args);
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
Packit 1470ea

Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:

Packit 1470ea
<list>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.Toolbar.html">Gtk.Toolbar</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.ToolButton.html">Gtk.Toolbutton</link>

</item>
Packit 1470ea
  <item>

<link href="http://www.valadoc.org/gtk+-3.0/Gtk.Stock.html">Gtk.Stock</link>

</item>
Packit 1470ea
</list>
Packit 1470ea
Packit 1470ea
</page>