Main Page | Directories | File List | File Members

hildon-navigator-panel.h

00001 /*
00002  * This file is part of maemo-af-desktop
00003  *
00004  * Copyright (C) 2006 Nokia Corporation.
00005  *
00006  * Author:  Moises Martinez <moises.martinez@nokia.com>
00007  * Contact: Karoliina Salminen <karoliina.t.salminen@nokia.com>
00008  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public License
00011  * version 2.1 as published by the Free Software Foundation.
00012  *
00013  * This library is distributed in the hope that it will be useful, but
00014  * WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
00021  * 02110-1301 USA
00022  *
00023  */
00024 
00025 #ifndef HILDON_NAVIGATOR_PANEL_H
00026 #define HILDON_NAVIGATOR_PANEL_H
00027 
00028 #define LIBTN_MAIL_PLUGIN        "libtn_mail_plugin.so"
00029 #define LIBTN_BOOKMARK_PLUGIN    "libtn_bookmark_plugin.so"
00030 
00031 #define HILDON_NAVIGATOR_LOG_FILE "/.osso/navigator.log"
00032 
00033 #include <gtk/gtkbox.h>
00034 #include "hildon-navigator-item.h"
00035 #include "hn-wm.h"
00036 
00037 G_BEGIN_DECLS
00038 
00039 #define PLUGIN_KEY_LIB                  "Library"
00040 #define PLUGIN_KEY_POSITION             "Position"
00041 #define PLUGIN_KEY_MANDATORY            "Mandatory"
00042 
00043 #define BUTTON_HEIGHT 90
00044 #define BUTTON_WIDTH  80
00045 
00046 #define HILDON_NAVIGATOR_PANEL_TYPE ( hildon_navigator_panel_get_type() )
00047 #define HILDON_NAVIGATOR_PANEL(obj) (GTK_CHECK_CAST (obj, \
00048             HILDON_NAVIGATOR_PANEL_TYPE, \
00049             HildonNavigatorPanel))
00050 #define HILDON_NAVIGATOR_PANEL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), \
00051             HILDON_NAVIGATOR_PANEL_TYPE, HildonNavigatorPanelClass))
00052 #define HILDON_IS_NAVIGATOR_PANEL(obj) (GTK_CHECK_TYPE (obj, \
00053             HILDON_NAVIGATOR_PANEL_TYPE))
00054 #define HILDON_IS_NAVIGATOR_PANEL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), \
00055             HILDON_NAVIGATOR_PANEL_TYPE))
00056 #define HILDON_NAVIGATOR_PANEL_GET_PRIVATE(obj) \
00057         (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
00058         HILDON_NAVIGATOR_PANEL_TYPE, HildonNavigatorPanelPrivate));
00059 
00060 typedef struct _HildonNavigatorPanel HildonNavigatorPanel;
00061 typedef struct _HildonNavigatorPanelClass HildonNavigatorPanelClass;
00062 
00063 struct _HildonNavigatorPanel
00064 {
00065     GtkBox parent;
00066 
00067 };
00068 
00069 struct _HildonNavigatorPanelClass
00070 {
00071     GtkBoxClass parent_class;
00072 
00073     void (*load_plugins_from_file)  (HildonNavigatorPanel *panel, 
00074                          gchar *filename);
00075     void (*unload_all_plugins)      (HildonNavigatorPanel *panel,
00076                          gboolean mandatory);
00077     void (*set_orientation)         (HildonNavigatorPanel *panel, 
00078                          GtkOrientation orientation);
00079     GtkOrientation  
00080      (*get_orientation)         (HildonNavigatorPanel *panel);
00081     
00082     void (*flip_panel)              (HildonNavigatorPanel *panel);
00083 
00084     void (*add_button)          (HildonNavigatorPanel *panel, 
00085                          GtkWidget *button);
00086 
00087     GList *(*get_plugins)       (HildonNavigatorPanel *panel);
00088     GList *(*peek_plugins)      (HildonNavigatorPanel *panel);
00089 
00090     HildonNavigatorItem *
00091       (*get_plugin_by_position) (HildonNavigatorPanel *panel,
00092                          guint position);
00093 };
00094 
00095 GType hildon_navigator_panel_get_type (void);
00096 
00097 HildonNavigatorPanel *
00098 hildon_navigator_panel_new (void);
00099 
00100 void 
00101 hn_panel_load_dummy_buttons (HildonNavigatorPanel *panel);
00102 
00103 void 
00104 hn_panel_load_plugins_from_file (HildonNavigatorPanel *panel, gchar *file);
00105 
00106 void 
00107 hn_panel_unload_all_plugins (HildonNavigatorPanel *panel, gboolean mandatory);
00108 
00109 void 
00110 hn_panel_set_orientation (HildonNavigatorPanel *panel, GtkOrientation orientation);
00111 
00112 GtkOrientation 
00113 hn_panel_get_orientation (HildonNavigatorPanel *panel);
00114 
00115 void 
00116 hn_panel_flip_panel (HildonNavigatorPanel *panel);
00117 
00118 void 
00119 hn_panel_add_button (HildonNavigatorPanel *panel, GtkWidget *button);
00120 
00121 GList *
00122 hn_panel_get_plugins (HildonNavigatorPanel *panel);
00123 
00124 GList *
00125 hn_panel_peek_plugins (HildonNavigatorPanel *panel);
00126 
00127 HildonNavigatorItem *
00128 hn_panel_get_plugin_by_position (HildonNavigatorPanel *panel, guint position);
00129 
00130 G_END_DECLS
00131 
00132 #endif /* */

Generated on Thu Dec 21 11:26:51 2006 for maemo-af-desktop-documentation by  doxygen 1.4.2