2009-03-12 Alberto Garcia <agarcia@igalia.com>
[hildon] / src / hildon-defines.h
index 99b93fa..60947b3 100644 (file)
@@ -3,12 +3,12 @@
  *
  * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
  *
- * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
+ * Contact: Rodrigo Novo <rodrigo.novo@nokia.com>
  *
  * 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.
+ * 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
  *
  */
 
+/* FIXME: Add documentation for the macros here */
+
 #ifndef                                         __HILDON_DEFINES_H__
 #define                                         __HILDON_DEFINES_H__
 
-#include                                        <gtk/gtkwindow.h>
+#include                                        <gtk/gtk.h>
 #include                                        <gdk/gdkkeysyms.h>
 
 G_BEGIN_DECLS
 
-typedef struct                                  _HildonIconSizes HildonIconSizes;
-
-struct                                          _HildonIconSizes
-{
-    GtkIconSize icon_size_list;
-    GtkIconSize icon_size_small;
-    GtkIconSize icon_size_toolbar;
-    GtkIconSize icon_size_widg;
-    GtkIconSize icon_size_widg_wizard;
-    GtkIconSize icon_size_grid;
-    GtkIconSize icon_size_big_note;
-    GtkIconSize icon_size_note;
-    GtkIconSize icon_size_statusbar;
-    GtkIconSize icon_size_indi_video_player_pre_roll;
-    GtkIconSize icon_size_indi_key_pad_lock;
-    GtkIconSize icon_size_indi_copy;
-    GtkIconSize icon_size_indi_delete;
-    GtkIconSize icon_size_indi_process;
-    GtkIconSize icon_size_indi_progressball;
-    GtkIconSize icon_size_indi_send;
-    GtkIconSize icon_size_indi_offmode_charging;
-    GtkIconSize icon_size_indi_tap_and_hold;
-    GtkIconSize icon_size_indi_send_receive;
-    GtkIconSize icon_size_indi_wlan_strength;
-    GtkIconSize image_size_indi_nokia_logo;
-    GtkIconSize image_size_indi_startup_failed;
-    GtkIconSize image_size_indi_startup_nokia_logo;
-    GtkIconSize image_size_indi_nokia_hands;
-};
-
-extern const                                    HildonIconSizes *hildoniconsizes;
-
-#define                                         HILDON_ICON_SIZE_CHECK_AND_GET(iconvar) \
-                                                (!hildoniconsizes ? \
-                                                 hildon_icon_sizes_init (), hildoniconsizes->iconvar : \
-                                                 hildoniconsizes->iconvar)
-
-#define                                         HILDON_ICON_SIZE_LIST \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_list)
-
-#define                                         HILDON_ICON_SIZE_SMALL \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_small)
-
-#define                                         HILDON_ICON_SIZE_TOOLBAR \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_toolbar)
-
-#define                                         HILDON_ICON_SIZE_WIDG \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_widg)
-
-#define                                         HILDON_ICON_SIZE_WIDG_WIZARD \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_widg_wizard)
-
-#define                                         HILDON_ICON_SIZE_GRID \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_grid)
-
-#define                                         HILDON_ICON_SIZE_BIG_NOTE \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_big_note)
-
-#define                                         HILDON_ICON_SIZE_NOTE \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_note)
+/* New hildon icon sizes. */
 
-#define                                         HILDON_ICON_SIZE_STATUSBAR \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_statusbar)
+#define HILDON_ICON_SIZE_XSMALL                  gtk_icon_size_from_name ("hildon-xsmall")
 
-#define                                         HILDON_ICON_SIZE_INDI_VIDEO_PLAYER_PRE_ROLL \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_video_player_pre_roll)
+#define HILDON_ICON_SIZE_SMALL                   gtk_icon_size_from_name ("hildon-small")
 
-#define                                         HILDON_ICON_SIZE_INDI_COPY \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_copy)
+#define HILDON_ICON_SIZE_STYLUS                  gtk_icon_size_from_name ("hildon-stylus")
 
-#define                                         HILDON_ICON_SIZE_INDI_DELETE \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_delete)
+#define HILDON_ICON_SIZE_FINGER                  gtk_icon_size_from_name ("hildon-finger")
 
-#define                                         HILDON_ICON_SIZE_INDI_PROCESS \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_process)
+#define HILDON_ICON_SIZE_THUMB                   gtk_icon_size_from_name ("hildon-thumb")
 
-#define                                         HILDON_ICON_SIZE_INDI_PROGRESSBALL \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_progressball)
+#define HILDON_ICON_SIZE_LARGE                   gtk_icon_size_from_name ("hildon-large")
 
-#define                                         HILDON_ICON_SIZE_INDI_SEND \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_send)
+#define HILDON_ICON_SIZE_XLARGE                  gtk_icon_size_from_name ("hildon-xlarge")
 
-#define                                         HILDON_ICON_SIZE_INDI_OFFMODE_CHARGING \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_offmode)
-
-#define                                         HILDON_ICON_SIZE_INDI_TAP_AND_HOLD \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_tap_and_hold)
-
-#define                                         HILDON_ICON_SIZE_INDI_SEND_RECEIVE \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_send_receive)
-
-#define                                         HILDON_ICON_SIZE_INDI_WLAN_STRENGTH \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_wlan_strength)
-
-#define                                         HILDON_IMAGE_SIZE_INDI_NOKIA_LOGO \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(image_size_indi_nokia_logo)
-
-#define                                         HILDON_IMAGE_SIZE_INDI_STARTUP_FAILED \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(image_size_indi_startup_nokia_failed)
-
-#define                                         HILDON_IMAGE_SIZE_INDI_STARTUP_NOKIA_LOGO \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(image_size_indi_startup_nokia_logo)
-
-#define                                         HILDON_IMAGE_SIZE_INDI_NOKIA_HAND \
-                                                HILDON_ICON_SIZE_CHECK_AND_GET(image_size_indi_nokia_hands)
+/* legacy hildon icon sizes, updated for new hildon */
 
+#define                                         HILDON_ICON_SIZE_TOOLBAR \
+                                                gtk_icon_size_from_name ("hildon-finger")
 /* Actual icon sizes */
 
-#define                                         HILDON_ICON_PIXEL_SIZE_LIST 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_SMALL 26
-
-#define                                         HILDON_ICON_PIXEL_SIZE_TOOLBAR 26
-
-#define                                         HILDON_ICON_PIXEL_SIZE_WIDG 26
-
-#define                                         HILDON_ICON_PIXEL_SIZE_WIDG_WIZARD 50
-
-#define                                         HILDON_ICON_PIXEL_SIZE_GRID 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_BIG_NOTE 50
-
-#define                                         HILDON_ICON_PIXEL_SIZE_NOTE 26
-
-#define                                         HILDON_ICON_PIXEL_SIZE_STATUSBAR 40
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_VIDEO_PLAYER_PRE_ROLL 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_KEY_PAD_LOCK 50
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_COPY 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_DELETE 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_PROCESS 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_PROGRESSBALL 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_SEND 64
-
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_OFFMODE_CHARGING 50
+/* New sizes */
+#define                                         HILDON_ICON_PIXEL_SIZE_XSMALL \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_XSMALL)
 
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_TAP_AND_HOLD 34
+#define                                         HILDON_ICON_PIXEL_SIZE_SMALL \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_SMALL)
 
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_SEND_RECEIVE 64
+#define                                         HILDON_ICON_PIXEL_SIZE_STYLUS \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_STYLUS)
 
-#define                                         HILDON_ICON_PIXEL_SIZE_INDI_WLAN_STRENGTH 64
+#define                                         HILDON_ICON_PIXEL_SIZE_FINGER \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_FINGER)
 
-/* Actual image sizes */
+#define                                         HILDON_ICON_PIXEL_SIZE_THUMB \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_THUMB)
 
-#define                                         HILDON_IMAGE_PIXEL_SIZE_INDI_NOKIA_LOGO 64
+#define                                         HILDON_ICON_PIXEL_SIZE_LARGE \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_LARGE)
 
-#define                                         HILDON_IMAGE_PIXEL_SIZE_INDI_STARTUP_FAILED 64
+#define                                         HILDON_ICON_PIXEL_SIZE_XLARGE \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_XLARGE)
 
-#define                                         HILDON_IMAGE_PIXEL_SIZE_INDI_STARTUP_NOKIA_LOGO 64
+/* legacy sizes */
+#define                                         HILDON_ICON_PIXEL_SIZE_TOOLBAR \
+                                                hildon_get_icon_pixel_size (HILDON_ICON_SIZE_TOOLBAR)
 
-#define                                         HILDON_IMAGE_PIXEL_SIZE_INDI_NOKIA_HANDS 64
+/* Margins */
 
-#define                                         HILDON_MARGIN_HALF 3
+#define                                         HILDON_MARGIN_HALF 4
 
-#define                                         HILDON_MARGIN_DEFAULT 6
+#define                                         HILDON_MARGIN_DEFAULT 8
 
-#define                                         HILDON_MARGIN_DOUBLE 12
+#define                                         HILDON_MARGIN_DOUBLE 16
 
-#define                                         HILDON_MARGIN_TRIPLE 18
+#define                                         HILDON_MARGIN_TRIPLE 24
 
 /* Hard keys */
 
@@ -202,26 +96,26 @@ extern const                                    HildonIconSizes *hildoniconsizes
 
 #define                                         HILDON_HARDKEY_LEFT GDK_Left
 
-#define                                         HILDON_HARDKEY_RIGHT      GDK_Right
+#define                                         HILDON_HARDKEY_RIGHT GDK_Right
 
-#define                                         HILDON_HARDKEY_DOWN       GDK_Down
+#define                                         HILDON_HARDKEY_DOWN GDK_Down
 
-#define                                         HILDON_HARDKEY_SELECT     GDK_Return
+#define                                         HILDON_HARDKEY_SELECT GDK_Return
 
-#define                                         HILDON_HARDKEY_MENU       GDK_F4
+#define                                         HILDON_HARDKEY_MENU GDK_F4
 
-#define                                         HILDON_HARDKEY_HOME       GDK_F5
+#define                                         HILDON_HARDKEY_HOME GDK_F5
 
-#define                                         HILDON_HARDKEY_ESC        GDK_Escape
+#define                                         HILDON_HARDKEY_ESC GDK_Escape
 
 #define                                         HILDON_HARDKEY_FULLSCREEN GDK_F6
 
-#define                                         HILDON_HARDKEY_INCREASE   GDK_F7
+#define                                         HILDON_HARDKEY_INCREASE GDK_F7
 
-#define                                         HILDON_HARDKEY_DECREASE   GDK_F8
+#define                                         HILDON_HARDKEY_DECREASE GDK_F8
 
-void 
-hildon_icon_sizes_init                          (void);
+gint
+hildon_get_icon_pixel_size                      (GtkIconSize size);
 
 G_END_DECLS