[maemo-developers] Fwd: Re: DBUS / EDS Confusion

From: Adam L spycedtx at gmail.com
Date: Fri Mar 2 00:42:17 EET 2007
On Thursday 01 March 2007 16:21, you wrote:
> On Thu, 2007-03-01 at 15:05 -0600, Adam L wrote:
> > Here is the offending code, within a static void section linked to a menu
> > action:
> > [CODE]
> > EBook *mybook = e_book_new_from_uri("/home/adam/books/adambook", &err);
> > if (mybook == NULL)
> > {
> >   hildon_banner_show_information(GTK_WIDGET(app->window), NULL,
> > err->message); }
> > [/CODE]
>
> Note that unless you really want to, you should use
> e_book_new_system_addressbook () instead of hard-coding a path.  This
> way you re-use the existing addressbook.

There's a reason for wanting to use other books.  But, that aside, this
 method should still work (in theory).

> >From a single line of source it's tricky to debug... can you publish the
>
> source?

There's nothing to the source. It's just a simple app with 2 menu items.


#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf-core.h>
#include <hildon-widgets/hildon-program.h>
#include <dbus/dbus-glib-lowlevel.h>

#include <libosso.h>

#include <libebook/e-book.h>
#include <libosso-abook/osso-abook.h>
#include <vars.h>




static void window_destroy (GtkWidget* widget, gpointer data)
{
    gtk_main_quit();
}


static void  dump_books(GtkWidget* widget, gpointer data)
{
    AppData *app;
    GList *contacts, *c;
    GError *err = NULL;
    int count;

    app = data;

		EBook *mybook = e_book_new_from_uri("/home/adam/books/adambook", &err);
		if (mybook == NULL)
		{
		    hildon_banner_show_information(GTK_WIDGET(app->window), NULL,
 err->message); }
		/**
		gboolean created = e_book_open(mybook, FALSE, &err);
		if (!created)
		{ printf("wasn't able to open the book\n"); }
		else {printf("opened the book\n");}
		**/

}


int main(int argc, char *argv[])
{

    GtkWidget *vbox, *label, *button;
    GtkMenu *menu;
    GtkMenuItem *item_close;
    GtkMenuItem *item_nothin;
    GdkPixbuf *icon;
    GError *error = NULL;
    osso_return_t result;



    appData.context = osso_initialize("ihello", "1.0", FALSE, NULL);
    if (appData.context == NULL)
    {
	printf("context was null\n");
    }
    else
    {
        printf("context was good\n");
    }

    gtk_init(&argc, &argv);


		/* Init abook */
		if (!osso_abook_init (&argc, &argv, appData.context))
		{
			g_critical ("Error initializing libosso-abook");
		  osso_deinitialize (appData.context);
		  return 1;
		}


    menu = GTK_MENU(gtk_menu_new());
    item_close = GTK_MENU_ITEM(gtk_menu_item_new_with_label("Close app"));
    item_nothin = GTK_MENU_ITEM(gtk_menu_item_new_with_label("Does nothing in
 app")); g_signal_connect(G_OBJECT(item_close), "activate",
 GTK_SIGNAL_FUNC(window_destroy), NULL);
 g_signal_connect(G_OBJECT(item_nothin), "activate",
 GTK_SIGNAL_FUNC(dump_books), &appData);

    gtk_menu_append(menu, GTK_WIDGET(item_close));
    gtk_menu_append(menu, GTK_WIDGET(item_nothin));

    appData.program = hildon_program_get_instance();
    g_set_application_name("application level title");
    hildon_program_set_common_menu(appData.program, menu);
    hildon_program_set_can_hibernate(appData.program, TRUE);


    mainWindow = HILDON_WINDOW(hildon_window_new());




    gtk_widget_set_name(GTK_WIDGET(mainWindow), "main window");


    hildon_program_add_window(appData.program, mainWindow);


    gtk_widget_show_all (GTK_WIDGET(mainWindow));

    gtk_main();

    osso_deinitialize(appData.context);

    return 0;
}


***************
vars.h

#include <hildon-widgets/hildon-window.h>


/* Application UI data struct */
 typedef struct _AppData AppData;
 struct _AppData {

  /* View items */
  HildonProgram *program;
  HildonWindow *window;

  osso_context_t *context;

  /* Toolbar */
  GtkWidget *main_toolbar;
  /* Find toolbar */
//  HildonFindToolbar *find_toolbar;

  /* Is Find toolbar visible or not */
  gboolean find_visible;
  };

HildonWindow *mainWindow;
gboolean   windowMax;
AppData   appData;

-------------------------------------------------------

More information about the maemo-developers mailing list