Bienvenido! Aquí usted puede subir sus pastes (códigos) para posteriormente compartirlos, inclusive puede protegerlos con password. Siéntase libre de explorar :)

Subido por Tutorial_tutoria el April Wed 29th 6:29 PM - Nunca expira
Descargar | Nuevo Paste

  1. using Gtk;
  2. using Granite;
  3.  
  4. namespace Tutorial//Espacio de Nombres para identificar su ambiente
  5. {
  6.         public class Tutorial : Granite.Application//Nuestra clase del programa principal, heredada de la clase Granite.Application
  7.         {//Hacer esto nos da muchas ventajas, como seguimiento con Logs, varias instancias de nuestra APP, etc.
  8.                 //VARIABLES EN EL HEADER
  9.                 public Window main_window;//Nuestra ventana principal
  10.  
  11.                 construct//Constructor para completar constantes
  12.                 {
  13.                 program_name = "Tutorial 1";//El Nombre de nuestro programa
  14.                 exec_name = "tutorial";//El nommbre del ejecutable (usualmente es el nombre en letras chicas "lowe case")
  15.        
  16.                 build_version = "0.1";//Version de nuestra APP
  17.  
  18.                 app_years = "2015";//Anio de nuestra APP
  19.                 app_icon = "application-default-icon";//El icono de nuestra aplicacion (nombre sacado del theme que se este usando). En todo caso copiar un icono propio a /usr/share/pixmaps/ y usar el nombre que tenga sin extension
  20.                 app_launcher = "tutorial.desktop";//El archivo .desktop de nuestra APP
  21.                 application_id = "org.tutorial.app1";//un ID unico que identificara nuestra aplicacion (generalmente org.aplicacion)
  22.        
  23.                 //Estas URLs se veran en el dialogo "acerca de" generado automaticamente
  24.                 main_url = "https://code.launchpad.net/tutorial";
  25.                 bug_url = "https://bugs.launchpad.net/tutorial";
  26.                 help_url = "https://code.launchpad.net/tutorial";
  27.                 translate_url = "https://translations.launchpad.net/tutorial";
  28.        
  29.                 //Aqui se colocan los nombres del autor, y los que ayudaron con la APP
  30.                 about_authors = {"Juan Pablo Lozano <[email protected]>"};
  31.                 about_documenters = {"Juan Pablo Lozano <[email protected]>"};
  32.                 about_artists = {"Juan Pablo Lozano"};
  33.                 about_comments = "Simple tutorial in Vala + GTK+";//un corto comentario sobre la APP
  34.                 about_translators = "";
  35.                 about_license_type = License.GPL_3_0;//la Licencia de nuestra APP
  36.         }
  37.  
  38.         public void build_and_run ()//Funcion que armara la Interface de usuario
  39.         {
  40.             var settings = TutorialSettings.Settings.get_default ();//creamos una nueva instancia de nuestra clase Settings (settings.vala)
  41.  
  42.             this.main_window = new Window ();//Creamos una nueva ventana
  43.             this.main_window.move (settings.opening_x, settings.opening_y);//movemos la ventana con los valores obtenidos de dconf
  44.                 this.main_window.set_default_size (settings.window_width, settings.window_height);//Le damos un tamaņo (toma los valores de dconf)
  45.                 this.main_window.set_title ("Tutorial");//Le damos un nombre a la APP
  46.                 this.main_window.set_border_width (12);//Le damos un Margen (o borde)
  47.                 this.main_window.set_application (this);//Asigna nuestra instancia a la ventana
  48.  
  49.                 var vbox = new Box (Orientation.VERTICAL, 0);//En este caso creo un BOX para meter distintos Widgets
  50.  
  51.                 var one_label = new Label ("Probando Granite.Service.Settings");//Creo un nuevo Label (o Etiqueta)
  52.  
  53.                 var check1 = new CheckButton.with_label ("Prueba 1");//Dos CheckBox para manejar Booleanos
  54.                 var check2 = new CheckButton.with_label ("Prueba 2");//es decir: true o false
  55.  
  56.                 vbox.pack_start (one_label, false, true, 0);//Empaqueto cada uno de los Widgets Anteriores
  57.                 vbox.pack_start (check1, false, true, 0);
  58.                 vbox.pack_start (check2, false, true, 0);
  59.  
  60.                 check1.set_active (settings.bool1);//Activo el CheckBox segun el valor obtenido de dconf
  61.                 check2.set_active (settings.bool2);
  62.  
  63.                 this.main_window.delete_event.connect (() => {//Al cerrar nuestra APP se produce un evento y lo conectamos y ejecutamos esto
  64.                 int x, y, w, h;
  65.                 bool b, c;
  66.                 this.main_window.get_position (out x, out y);//Obtenemos la posicion en pantalla de la ventana
  67.                 this.main_window.get_size (out w, out h);//Obtenemos el valor actual del tamanio de la ventana
  68.                 b = check1.get_active ();//Obtenemos el estado de los CheckBox (Activo o Inactivo)
  69.                 c = check2.get_active ();
  70.  
  71.                         settings.opening_x = x;//Guardamos cada una de las variables en los campos de Dconf
  72.                 settings.opening_y = y;
  73.                 settings.window_width = w;
  74.                 settings.window_height = h;
  75.                 settings.bool1 = b;
  76.                 settings.bool2 = c;
  77.    
  78.                 return false;//Retornamos falso al terminar el evento
  79.                         });
  80.  
  81.                 this.main_window.add (vbox);//Aniado el BOX con los Widgets a la ventana principal
  82.                 this.main_window.show_all ();//Y muestro a todo lo que contenga la ventana de la APP
  83.         }
  84.  
  85.         public Tutorial ()
  86.         {
  87.             this.set_flags (ApplicationFlags.HANDLES_OPEN);//Establecemos los Flags de nuestra APP
  88.                 Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = true;//Y usamos la version DARK del theme GTK+
  89.         }
  90.  
  91.         public override void activate ()//Esta pequenia funcion nos sirve para crear instancias de nuestra APP
  92.         {
  93.             if (this.main_window == null)
  94.                 build_and_run ();
  95.         }
  96.         }
  97. }
Lenguaje:
Para seńalar algunas líneas en particular, al inicio de cada línea pon: @@





© 2017 - Powered by PASTE 1.0. Traducido al ESP y modificado por DesdeLinux.net