erbrowser/src/browser.h File Reference

browser - eReader "GtkMozEmbed" widget creation, signal handlers initialistation and browser related API's More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

Ereadernew_gtk_ereader (char *manifest, char *input_URL)
void destroy_ereader (Ereader *theEreader)
void set_browser_visibility (Ereader *browser, gboolean visibility)
void browser_quit ()


Detailed Description

browser - eReader "GtkMozEmbed" widget creation, signal handlers initialistation and browser related API's

<File description>="">

Definition in file browser.h.


Function Documentation

void browser_quit (  ) 

Definition at line 343 of file browser.cpp.

Here is the call graph for this function:

void destroy_ereader ( Ereader theEreader  ) 

clear resources used by the Ereader data structure

Parameters:
theEreader reference to the eReader struct
Returns:
void

Definition at line 349 of file browser.cpp.

00350 {
00351     // store url lastest visited
00352     gchar  *    type = NULL;
00353     gboolean    page_type_known = FALSE;
00354     int         page = -1;
00355                 
00356         // current url 
00357     gchar  *url = gtk_moz_embed_get_location(GTK_MOZ_EMBED(theEreader->mozEmbed));
00358        
00359     // get type so that we can get page number
00360     if (page_type_known = mozilla_get_page_type(GTK_MOZ_EMBED(theEreader->mozEmbed), &type))
00361     {
00362         page = index_file_get_page_number(&theEreader->pageStatus->index, type, url);
00363     }
00364     BR_LOGPRINTF("url last visited %s %d page\n", url, page);
00365     s_recorder.StorePageLastRead(url);
00366     if (url) 
00367     {
00368         free(url);
00369     }
00370     
00371     if (theEreader)
00372     {
00373         BR_LOGPRINTF("cleaning up browser allocations");
00374 
00375         if (theEreader->pageStatus)
00376         {
00377             browser_destroy_page_status(theEreader->pageStatus);
00378         }
00379 
00380         g_free(theEreader);
00381         theEreader = NULL;
00382     }
00383 }

Here is the call graph for this function:

Ereader* new_gtk_ereader ( char *  manifest,
char *  input_URL 
)

Allocate an Ereader data structure, creates the ereader browser specific GTK widgets and initializes the embedded browser window

Parameters:
Manifest File location
URL location of the first file that needs to be displayed
Returns:
reference to Ereader structure indicates success

Definition at line 266 of file browser.cpp.

00267 {
00268     Ereader *theEreader;
00269 
00270     BR_LOGPRINTF("entry");
00271 
00272     // create one Ereader ereader struct and fill it with zeros
00273     theEreader = g_new0(Ereader, 1);
00274 
00275     if (theEreader)
00276     {
00277         theEreader->pageStatus = browser_create_page_status();
00278         browser_set_page_status_indexfile(theEreader->pageStatus, manifest);
00279 
00280         BR_LOGPRINTF("theEreader 0x%x - theEreader->pageStatus 0x%x", theEreader, theEreader->pageStatus);
00281 
00282         theEreader->topLevelWindow = create_window("E-reader");
00283 
00284         // new vbox - homogenous - zero spacing
00285         theEreader->topLevelVBox = gtk_vbox_new(FALSE, 0);
00286         gtk_widget_show(theEreader->topLevelVBox);
00287         gtk_container_add(GTK_CONTAINER(theEreader->topLevelWindow), theEreader->topLevelVBox);
00288 
00289         // event box addded to have an actual X-window     
00290         theEreader->eventBox = gtk_event_box_new();
00291         gtk_box_pack_start(GTK_BOX(theEreader->topLevelVBox), theEreader->eventBox, TRUE, TRUE, 0);
00292         gtk_widget_show(theEreader->eventBox);
00293 
00294         g_signal_connect(G_OBJECT(theEreader->topLevelVBox), "expose-event", G_CALLBACK(browser_main_window_expose_event), theEreader);
00295 
00296 
00297 #ifdef LOCAL_DISPLAY
00298         // create toolbar empty area 
00299         BR_WARNPRINTF("LOCAL_DISPLAY is defined => toolbar");
00300 
00301         theEreader->toolbar = gtk_toolbar_new();
00302         gtk_widget_set_usize(GTK_WIDGET(theEreader->toolbar), (-1), TOOLBAR_HEIGTH);
00303         gtk_widget_show(theEreader->toolbar);
00304 
00305         gtk_box_pack_start(GTK_BOX(theEreader->topLevelVBox), GTK_WIDGET(theEreader->toolbar), FALSE, // expand
00306                            FALSE, // fill
00307                            0);  // padding
00308 #endif //LOCAL_DISPLAY
00309 
00310         gtk_widget_show(theEreader->topLevelWindow);
00311 
00312         // check manifest file
00313         s_recorder.SetManifestPathName(manifest);
00314         
00315         char *url = s_recorder.GetPageLastRead(input_URL);
00316         if (url)
00317         {
00318             input_URL = url;
00319             // input_URL = "file:///./pagl01.html";
00320         }
00321                 
00322         // create the embedded browser
00323         browser_create(theEreader, input_URL);
00324 
00325         // catch the destruction of the toplevel window
00326         g_signal_connect(GTK_OBJECT(theEreader->topLevelWindow), "delete_event", G_CALLBACK(delete_cb), theEreader);
00327 
00328         // catch the key-events in the toplevel window
00329         gtk_signal_connect(GTK_OBJECT(theEreader->topLevelWindow), "key_press_event", G_CALLBACK(on_mainWindow_keypress), theEreader);
00330         
00331         // init 
00332         s_recorder.InstallTermHandler();
00333         s_recorder.SetBrowser(theEreader);
00334     }
00335     else
00336     {
00337         BR_ERRORPRINTF("unable to allocate gEreader");
00338     }
00339 
00340     return theEreader;
00341 }

Here is the call graph for this function:

void set_browser_visibility ( Ereader browser,
gboolean  visibility 
)

show/hide the Mozembed widget

Parameters:
theEreader reference to the eReader struct
visibility 
Returns:
void

Definition at line 449 of file browser.cpp.

00450 {
00451     BR_LOGPRINTF("%s", (visibility == TRUE) ? "TRUE" : "FALSE");
00452 
00453     if (!visibility)
00454     {
00455         gtk_widget_hide(browser->mozEmbed);
00456     }
00457     else
00458     {
00459         gtk_widget_show(browser->mozEmbed);
00460         gtk_widget_grab_focus(browser->mozEmbed);
00461     }
00462 }


Generated on Sun Dec 14 17:14:46 2008 by  doxygen 1.5.6