
Go to the source code of this file.
Functions | |
| Ereader * | new_gtk_ereader (char *manifest, char *input_URL) |
| void | destroy_ereader (Ereader *theEreader) |
| void | set_browser_visibility (Ereader *browser, gboolean visibility) |
| void | browser_quit () |
<File description>="">
Definition in file browser.h.
| void browser_quit | ( | ) |
Definition at line 343 of file browser.cpp.
00344 { 00345 s_recorder.UninstallTermHandler(); 00346 destroy_ereader(s_recorder.GetBrowser()); 00347 }

| void destroy_ereader | ( | Ereader * | theEreader | ) |
clear resources used by the Ereader data structure
| theEreader | reference to the eReader struct |
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 }

| 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
| Manifest | File location | |
| URL | location of the first file that needs to be displayed |
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 }

| void set_browser_visibility | ( | Ereader * | browser, | |
| gboolean | visibility | |||
| ) |
show/hide the Mozembed widget
| theEreader | reference to the eReader struct | |
| visibility |
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 }
1.5.6