evas.vapi: bind HINT_EXPAND and HINT_FILL
[libeflvala.git] / eflvala / application.vala
blob39eb1e5bd32e9e54f8d05887ce33c75300b74550
1 /**
2 * Copyright (C) 2009-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 **/
20 static EflVala.Application theApp;
22 //=======================================================================
23 public abstract interface EflVala.IApplication : GLib.Object
24 //=======================================================================
26 public abstract int run();
27 public abstract void quit();
30 //=======================================================================
31 public class EflVala.Application : EflVala.IApplication, GLib.Object
32 //=======================================================================
35 // public API
37 public Application( string[] args )
39 debug( "Application()" );
40 Elm.init( args );
41 assert ( theApp == null ); // fail, if someone tries to create two apps per process
42 theApp = this;
45 public int run()
47 GLib.MainLoop gmain = new GLib.MainLoop( null, false );
48 if ( Ecore.MainLoop.glib_integrate() )
50 debug( "GLib mainloop integration successfully completed" );
52 else
54 critical( "Could not integrate glib mainloop. This library needs ecore compiled with glib mainloop support" );
56 Ecore.MainLoop.begin();
57 return 0;
60 public void quit()
62 Ecore.MainLoop.quit();