aboutsummaryrefslogtreecommitdiff
path: root/hildon/hildon-main.c
blob: 65cd4dd8dc8ba1121ac19ce66e1fe8fd5c5fba13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * This file is part of the hildon library
 *
 * Copyright (C) 2008, 2009 Nokia Corporation, all rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 *
 */

/**
 * SECTION:hildon-main
 * @Short_Description: Library initialization.
 *
 * Before using Hildon, you need to initialize it; initialization connects
 * to the window system display, and parses some standard command line
 * arguments. See also gtk_init() to know more details on this topic.
 *
 * Hildon should be initialized by using hildon_gtk_init(). Note that
 * this function also initializes gtk by calling gtk_init(). In case
 * you need a customized initialization of the GTK+ library you have
 * to use hildon_init() after the customized GTK+ initialization.
 *
 * <example>
 * <title>Typical <function>main</function> function for a Hildon application</title>
 *   <programlisting>
 * int
 * main (int argc, char **argv)
 * {
 *   /<!-- -->* Initialize i18n support *<!-- -->/
 *   gtk_set_locale (<!-- -->);
 * <!-- -->
 *   /<!-- -->* Initialize the widget set *<!-- -->/
 *   hildon_gtk_init (&amp;argc, &amp;argv);
 * <!-- -->
 *   /<!-- -->* Create the main window *<!-- -->/
 *   mainwin = hildon_stackable_window_new();
 * <!-- -->
 *   /<!-- -->* Set up our GUI elements *<!-- -->/
 *  ...
 * <!-- -->
 *   /<!-- -->* Show the application window *<!-- -->/
 *   gtk_widget_show_all (mainwin);
 * <!-- -->
 *   /<!-- -->* Enter the main event loop, and wait for user interaction *<!-- -->/
 *   gtk_main (<!-- -->);
 * <!-- -->
 *   /<!-- -->* The user lost interest *<!-- -->/
 *   return 0;
 *}
 *  </programlisting>
 * </example>
 */


#include <gtk/gtk.h>
#include "hildon-main.h"

/**
 * hildon_init:
 *
 * Initializes the hildon library. Call this function after calling gtk_init()
 * and before using any hildon or GTK+ functions in your program.
 *
 * Since: 2.2
 **/
void
hildon_init (void)
{
  static gboolean initialized = FALSE;

  if (initialized) {
    g_critical ("Tried to initialized Hildon more than once.");
    return;
  } else {
    initialized = TRUE;
  }

  /* Register icon sizes */
  gtk_icon_size_register ("hildon-xsmall", 16, 16);
  gtk_icon_size_register ("hildon-small", 24, 24);
  gtk_icon_size_register ("hildon-stylus", 32, 32);
  gtk_icon_size_register ("hildon-finger", 48, 48);
  gtk_icon_size_register ("hildon-thumb", 64, 64);
  gtk_icon_size_register ("hildon-large", 96, 96);
  gtk_icon_size_register ("hildon-xlarge", 128, 128);
}

/**
 * hildon_gtk_init:
 * @argc: Address of the <parameter>argc</parameter>
 * parameter of your main() function. Changed if any arguments were
 * handled.
 * @argv: Address of the <parameter>argv</parameter>
 * parameter of main().  Any parameters understood by gtk_init()
 * are stripped before return.
 *
 * Convenience function to initialize the GTK+ and hildon
 * libraries. Use this function to replace a call to gtk_init() and also
 * initialize the hildon library. See hildon_init() and gtk_init() for details.
 *
 * Since: 2.2
 **/
void
hildon_gtk_init (int *argc, char ***argv)
{
  gtk_init (argc, argv);
  hildon_init ();
}