#include <gtk/gtk.h>
#include "hildon-defines.h"
-const HildonIconSizes* hildoniconsizes = NULL;
-
-static HildonIconSizes iis; /* hildon internal icon sizes */
-
/**
- * hildon_icon_sizes_init:
+ * hildon_get_icon_pixel_size:
+ * @size: the icon size to get pixel size for
*
- * Initializes the icon size structures. Normally
- * it's not needed to call this manually.
+ * Returns the icon size (height) for the given, named icon.
+ * In most cases it's much more convienient to call one of the
+ * predefined macros instead of this function directly.
*
+ * Returns: the height/width of icon to use. O if icon could not be found.
*/
-void
-hildon_icon_sizes_init (void)
+gint
+hildon_get_icon_pixel_size (GtkIconSize size)
{
- if (hildoniconsizes != NULL)
- return;
-
- hildoniconsizes = &iis;
-
- iis.icon_size_list = gtk_icon_size_register ("hildon_icon_size_list", 64, 64);
- iis.icon_size_small = gtk_icon_size_register ("*icon_size_small", 26, 26);
- iis.icon_size_toolbar = gtk_icon_size_register ("icon_size_toolbar", 26, 26);
- iis.icon_size_widg = gtk_icon_size_register ("icon_size_widg", 26, 26);
- iis.icon_size_widg_wizard = gtk_icon_size_register ("icon_size_widg_wizard", 50, 50);
- iis.icon_size_grid = gtk_icon_size_register ("icon_size_grid", 64, 64);
- iis.icon_size_big_note = gtk_icon_size_register ("icon_size_big_note", 50, 50);
- iis.icon_size_note = gtk_icon_size_register ("icon_size_note", 26, 26);
- iis.icon_size_statusbar = gtk_icon_size_register ("icon_size_statusbar", 40, 40);
- iis.icon_size_indi_video_player_pre_roll = gtk_icon_size_register ("icon_size_indi_video_player_pre_roll", 64, 64);
- iis.icon_size_indi_key_pad_lock = gtk_icon_size_register ("icon_size_indi_key_pad_lock", 50, 50);
- iis.icon_size_indi_copy = gtk_icon_size_register ("icon_size_indi_copy", 64, 64);
- iis.icon_size_indi_delete = gtk_icon_size_register ("icon_size_indi_delete", 64, 64);
- iis.icon_size_indi_process = gtk_icon_size_register ("icon_size_indi_process", 64, 64);
- iis.icon_size_indi_progressball = gtk_icon_size_register ("icon_size_indi_progressball", 64, 64);
- iis.icon_size_indi_send = gtk_icon_size_register ("icon_size_indi_send", 64, 64);
- iis.icon_size_indi_offmode_charging = gtk_icon_size_register ("icon_size_indi_offmode_charging", 50, 50);
- iis.icon_size_indi_tap_and_hold = gtk_icon_size_register ("icon_size_indi_tap_and_hold", 34, 34);
- iis.icon_size_indi_send_receive = gtk_icon_size_register ("icon_size_indi_send_receive", 64, 64);
- iis.icon_size_indi_wlan_strength = gtk_icon_size_register ("icon_size_indi_wlan_strength", 64, 64);
-
- iis.image_size_indi_nokia_logo = gtk_icon_size_register ("image_size_indi_nokia_logo", 64, 64);
- iis.image_size_indi_startup_failed = gtk_icon_size_register ("image_size_indi_startup_failed", 64, 64);
- iis.image_size_indi_startup_nokia_logo = gtk_icon_size_register ("image_size_indi_startup_nokia_logo", 64, 64);
- iis.image_size_indi_nokia_hands = gtk_icon_size_register ("image_size_indi_nokia_hands", 64, 64);
+ gint w, h;
+
+ if (gtk_icon_size_lookup (size, &w, &h))
+ return h;
+ else
+ return 0;
}
+
#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)
+ gtk_icon_size_from_name ("gtk-menu")
#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)
+ gtk_icon_size_from_name ("gtk-menu")
-#define HILDON_ICON_SIZE_GRID \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_grid)
+#define HILDON_ICON_SIZE_WIZARD \
+ gtk_icon_size_from_name ("gtk-dialog")
#define HILDON_ICON_SIZE_BIG_NOTE \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_big_note)
+ gtk_icon_size_from_name ("gtk-dialog")
#define HILDON_ICON_SIZE_NOTE \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_note)
-
-#define HILDON_ICON_SIZE_STATUSBAR \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_statusbar)
-
-#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_INDI_COPY \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_copy)
-
-#define HILDON_ICON_SIZE_INDI_DELETE \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_delete)
-
-#define HILDON_ICON_SIZE_INDI_PROCESS \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_process)
-
-#define HILDON_ICON_SIZE_INDI_PROGRESSBALL \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_progressball)
-
-#define HILDON_ICON_SIZE_INDI_SEND \
- HILDON_ICON_SIZE_CHECK_AND_GET(icon_size_indi_send)
-
-#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)
+ gtk_icon_size_from_name ("gtk-menu")
/* 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
-
-#define HILDON_ICON_PIXEL_SIZE_INDI_TAP_AND_HOLD 34
-
-#define HILDON_ICON_PIXEL_SIZE_INDI_SEND_RECEIVE 64
-
-#define HILDON_ICON_PIXEL_SIZE_INDI_WLAN_STRENGTH 64
+#define HILDON_ICON_PIXEL_SIZE_SMALL \
+ hildon_get_icon_pixel_size (HILDON_ICON_SIZE_SMALL)
-/* Actual image sizes */
+#define HILDON_ICON_PIXEL_SIZE_TOOLBAR \
+ hildon_get_icon_pixel_size (HILDON_ICON_SIZE_TOOLBAR)
-#define HILDON_IMAGE_PIXEL_SIZE_INDI_NOKIA_LOGO 64
+#define HILDON_ICON_PIXEL_SIZE_WIZARD \
+ hildon_get_icon_pixel_size (HILDON_ICON_SIZE_WIZARD)
-#define HILDON_IMAGE_PIXEL_SIZE_INDI_STARTUP_FAILED 64
+#define HILDON_ICON_PIXEL_SIZE_BIG_NOTE \
+ hildon_get_icon_pixel_size (HILDON_ICON_SIZE_BIG_NOTE)
-#define HILDON_IMAGE_PIXEL_SIZE_INDI_STARTUP_NOKIA_LOGO 64
+#define HILDON_ICON_PIXEL_SIZE_NOTE \
+ hildon_get_icon_pixel_size (HILDON_ICON_SIZE_NOTE)
-#define HILDON_IMAGE_PIXEL_SIZE_INDI_NOKIA_HANDS 64
+/* Margins */
#define HILDON_MARGIN_HALF 3
#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