scribble/src/ScribbleUI.c File Reference

#include <gdk/gdkkeysyms.h>
#include <liberdm/display.h>
#include <unistd.h>
#include <signal.h>
#include "ScribbleUI.h"
#include "ScribbleCore.h"
#include "ScribbleIPC.h"
#include "ScribbleLog.h"
#include "ScribbleSignalDeal.h"
#include "ScribbleSaveThread.h"
#include "FileMgr_page.h"
#include "displayUpdate.h"
#include "erbusy.h"
#include "ink_draw.h"

Go to the source code of this file.

Functions

static void flushPageBar (PFileManager pFM)
static gboolean on_slideshow_nextpage (gpointer data)
void jump_to_page (PScribbleUICtx pScribbleUICtx)
void resetCurrentPage (PScribbleUICtx pScribbleUICtx, const int iNewPageNum)
gboolean addOnepage (PScribbleUICtx pScribbleUICtx)
gboolean delOnepage (PScribbleUICtx pScribbleUICtx)
gboolean initPixMap (PScribbleUICtx pScribbleUICtx)
static gboolean expose_event (GtkWidget *widget1, GdkEventExpose *event, gpointer callback_data)
static gboolean button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data)
void eraseStrokes (PScribbleUICtx pScribbleUICtx, GdkPoint *pcurPoint)
static gboolean button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer data)
static gboolean motion_notify_event (GtkWidget *widget, GdkEventMotion *event, gpointer data)
guint on_mainWindow_keypress (GtkWidget *widget, GdkEventKey *event, gpointer data)
void quit (gpointer data)
static gboolean flush_points (gpointer data)
static void initPageBarAndToolBar (ScribbleUICtx *pScribbleUICtx)
void printarg (const int argc, char *argv[])
int parse_args (int argc, char *argv[], ScribbleUICtx *pScribbleUICtx)
gboolean initScribbleUICtx (ScribbleUICtx *pScribbleUICtx)
int main (int argc, char *argv[])

Variables

static gboolean g_slideshow_enable = FALSE
static gint g_slideshow_interval = 10


Function Documentation

gboolean addOnepage ( PScribbleUICtx  pScribbleUICtx  ) 

Definition at line 108 of file ScribbleUI.c.

00109 {
00110     PFileManager pFM=&pScribbleUICtx->fileManager;
00111     insertNewPageAfterCurr(pFM);
00112     SB_LOGPRINTF("after insert[total=%d,curropen=%d]\n",
00113                  getTotalPage(pFM),getCurrPageNo(pFM));
00114 
00115     //goto the new page,it will flush the pagebar.
00116     resetCurrentPage(pScribbleUICtx,getCurrPageNo(pFM)+1);
00117     return TRUE;
00118 }

Here is the call graph for this function:

static gboolean button_press_event ( GtkWidget *  widget,
GdkEventButton *  event,
gpointer  data 
) [static]

Definition at line 197 of file ScribbleUI.c.

00200 {
00201     //SB_LOGPRINTF("__start__\n");
00202     erbusy_blink();
00203     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00204     if ((event->button == 1) && (pScribbleUICtx->pixmap != NULL)) 
00205     {
00206         //SB_LOGPRINTF("===press point[%d,%d,%d]===\n",
00207                //(int)event->x ,(int)event->y,pScribbleUICtx->pen_down);
00208         pScribbleUICtx->pen_down = TRUE;
00209         
00210         if( toolbar_is_drawing()  &&  !g_slideshow_enable )
00211         {
00212             core_add_point(pScribbleUICtx,event->x, event->y);
00213         }
00214         else if ( toolbar_is_erasing() )
00215         {
00216             //save the point as the previous point
00217             pScribbleUICtx->lastPoint.x=event->x;
00218             pScribbleUICtx->lastPoint.y=event->y;
00219             //To add do a hitTest?
00220         }
00221         else if( toolbar_is_waitconfirmdel() )
00222         {
00223             toolbar_confirm_delpage();
00224         }
00225     }
00226     //SB_LOGPRINTF("__end__\n");
00227     return TRUE;
00228 }

Here is the call graph for this function:

static gboolean button_release_event ( GtkWidget *  widget,
GdkEventButton *  event,
gpointer  data 
) [static]

Definition at line 261 of file ScribbleUI.c.

00264 {
00265     //SB_LOGPRINTF("__start__\n");
00266     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00267     //SB_LOGPRINTF("===release[%d,%d,%d]===\n",
00268            //(int)event->x ,(int)event->y,pScribbleUICtx->pen_down);
00269     pScribbleUICtx->pen_down = FALSE;
00270     
00271     if( toolbar_is_drawing()  &&  !g_slideshow_enable )
00272     {
00273         core_add_point(pScribbleUICtx,event->x, event->y);
00274     }
00275     else if ( toolbar_is_erasing() )
00276     {
00277         GdkPoint curPoint;
00278         curPoint.x=event->x;
00279         curPoint.y=event->y;
00280         eraseStrokes(pScribbleUICtx,&curPoint);
00281         //also flush screen object, when stroke is finished.
00282         core_redrawBgAndStrks(pScribbleUICtx);
00283     }
00284     erbusy_off();
00285     //SB_LOGPRINTF("__end__\n");
00286     return TRUE;
00287 }

Here is the call graph for this function:

gboolean delOnepage ( PScribbleUICtx  pScribbleUICtx  ) 

Definition at line 121 of file ScribbleUI.c.

00122 {
00123     PFileManager pFM=&pScribbleUICtx->fileManager;
00124     if( 0!=deleteCurrPage(pFM) )
00125     {
00126         SB_ERRORPRINTF("del fail\n");
00127         return FALSE;
00128     }
00129     SB_LOGPRINTF("after del[total=%d,curropen=%d]\n",
00130                  getTotalPage(pFM),getCurrPageNo(pFM));
00131 
00132     flushPageBar(pFM);
00133     //reset toolbar
00134     toolbar_reinit( getTotalPage(pFM) );
00135     //goto the new page.
00136     jump_to_page(pScribbleUICtx);
00137     return TRUE;
00138 }

Here is the call graph for this function:

void eraseStrokes ( PScribbleUICtx  pScribbleUICtx,
GdkPoint *  pcurPoint 
)

Definition at line 254 of file ScribbleUI.c.

00255 {
00256     PtrInk pdelink=pScribbleUICtx->scribbleCoreCtx.pDelInk;
00257     if( pdelink==NULL) SB_WARNPRINTF("NULL before erase\n");
00258     core_eraseStrokes(pScribbleUICtx,pcurPoint);
00259 }

Here is the call graph for this function:

static gboolean expose_event ( GtkWidget *  widget1,
GdkEventExpose *  event,
gpointer  callback_data 
) [static]

Definition at line 183 of file ScribbleUI.c.

00186 {
00187     SB_LOGPRINTF("____start____\n");
00188     erbusy_blink(); //will be close after draw
00189     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)callback_data;
00190         
00191     flushPixMap(pScribbleUICtx);
00192     display_update_request_screen_refresh(MAIN_WINDOW_EXPOSE_LEVEL,NULL);
00193     SB_LOGPRINTF("__finish___\n");
00194     return FALSE;
00195 }

Here is the call graph for this function:

static gboolean flush_points ( gpointer  data  )  [static]

Definition at line 409 of file ScribbleUI.c.

00410 {
00411     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00412     //under ease mode, we maybe need flush once.
00413     if( toolbar_is_erasing() )
00414     {
00415         if( pScribbleUICtx->scribbleCoreCtx.pDelInk==NULL)
00416             SB_WARNPRINTF("NULL before flush screen\n");
00417         
00418         core_flush_delstroke_onscreen(pScribbleUICtx);
00419     }
00420     else
00421     {
00422         core_process_points ( pScribbleUICtx );
00423     }
00424     return TRUE;
00425 }

Here is the call graph for this function:

static void flushPageBar ( PFileManager  pFM  )  [static]

Definition at line 427 of file ScribbleUI.c.

00428 {
00429     SB_LOGPRINTF("totalpage=%d,currentpage=%d\n",getTotalPage(pFM),getCurrPageNo(pFM));
00430     pagebar_set_pagecount(getTotalPage(pFM));
00431     pagebar_goto_page(getCurrPageNo(pFM));
00432     pagebar_redraw();
00433 }

Here is the call graph for this function:

static void initPageBarAndToolBar ( ScribbleUICtx pScribbleUICtx  )  [static]

Definition at line 435 of file ScribbleUI.c.

00436 {
00437     SB_LOGPRINTF("__start___\n");
00438     erbusy_init();
00439     erbusy_blink();
00440     //install and set toolbar
00441     toolbar_init();
00442     PFileManager pFM=&pScribbleUICtx->fileManager;
00443     toolbar_firstinit( getTotalPage(pFM) );
00444     
00445       //install and set page bar
00446     SB_LOGPRINTF("ER_SCRIBBLE_UA_ID=%d,total page=%d,currpage=%d\n",
00447                  ER_SCRIBBLE_UA_ID,
00448                  getTotalPage(pFM),
00449                  getCurrPageNo(pFM));
00450     pagebar_init();
00451     flushPageBar(pFM);
00452     
00453     erbusy_off();
00454     SB_LOGPRINTF("__finish___\n");
00455 }

Here is the call graph for this function:

gboolean initPixMap ( PScribbleUICtx  pScribbleUICtx  ) 

Definition at line 160 of file ScribbleUI.c.

00161 {
00162     SB_LOGPRINTF("____start____\n");    
00163     if(pScribbleUICtx->pixmap)
00164         g_object_unref (pScribbleUICtx->pixmap);
00165     
00166     GtkWidget* widget=pScribbleUICtx->drawing_area;
00167     pScribbleUICtx->pixmap = gdk_pixmap_new (widget->window,
00168                                              widget->allocation.width,
00169                                              widget->allocation.height,
00170                                              -1);
00171     SB_LOGPRINTF("\nwidth:%d,height=%d\n",
00172            widget->allocation.width,
00173            widget->allocation.height);
00174     //printDrawablePosition(pScribbleUICtx);
00175 
00176     //set the drawable object
00177     ink_setDrawable(pScribbleUICtx->pixmap);
00178     SB_LOGPRINTF("__finish___\n");
00179     return TRUE;
00180 }

Here is the call graph for this function:

gboolean initScribbleUICtx ( ScribbleUICtx pScribbleUICtx  ) 

Definition at line 524 of file ScribbleUI.c.

00525 {
00526     //set all pointer to null.
00527     memset(pScribbleUICtx,0,sizeof(ScribbleUICtx));
00528     pScribbleUICtx->pen_down= FALSE;
00529     pScribbleUICtx->lastPoint.x=-1;
00530     pScribbleUICtx->lastPoint.y=-1;
00531     return TRUE;
00532 }

void jump_to_page ( PScribbleUICtx  pScribbleUICtx  ) 

Copyright (C) 2005-2008 iRex Technologies B.V. All rights reserved.

Definition at line 58 of file ScribbleUI.c.

00059 {
00060     SB_LOGPRINTF("__start__...\n");
00061     erbusy_blink();
00062     if ( 0!= loadPageAndResultImg(pScribbleUICtx) )
00063     {
00064         erbusy_off();
00065         SB_ERRORPRINTF("Error loading page and result image\n");
00066     }
00067     else
00068     {
00069         gtk_widget_queue_draw(pScribbleUICtx->drawing_area);
00070     }
00071     SB_LOGPRINTF("__finish__...\n");
00072 }

Here is the call graph for this function:

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

Definition at line 534 of file ScribbleUI.c.

00535 {
00536     GtkWidget *window;
00537     GtkWidget *vbox;
00538   
00539     ScribbleUICtx scribbleUICtx;
00540     guint g_timeout_handler_id = 0;
00541   
00542     if(!initScribbleUICtx(&scribbleUICtx))
00543         return -1;
00544 
00545     //parse the parameter and init FileManager.
00546     if ( 0!=parse_args(argc, argv,&scribbleUICtx))  
00547         return -1;
00548 
00549     dealTermSignal(&scribbleUICtx);
00550 
00551     g_thread_init(NULL);
00552     gdk_threads_init();
00553 
00554     scribbleUICtx.fbdev = open("/dev/fb0", O_RDWR);
00555     if ( -1 == scribbleUICtx.fbdev)
00556     {
00557         SB_ERRORPRINTF("Error opening fb. # mknod /dev/fb0 c 29 0\n");
00558         return -1;
00559     }
00560   
00561     SB_LOGPRINTF("version %d\n", 1);
00562     gtk_init (&argc, &argv);
00563 
00564     window= gtk_window_new (GTK_WINDOW_TOPLEVEL);
00565     gtk_widget_set_name (window, "Test Input");
00566     if (g_slideshow_enable)
00567     {
00568         gtk_window_fullscreen(GTK_WINDOW(window));  // Fullscreen overlaps toolbar and pagebar
00569         g_timeout_add(g_slideshow_interval * 1000, on_slideshow_nextpage, &scribbleUICtx);
00570     }
00571 
00572     vbox = gtk_vbox_new (FALSE, 0);
00573     gtk_container_add (GTK_CONTAINER (window), vbox);
00574     gtk_widget_show (vbox);
00575 
00576     /* Create the drawing area */
00577     scribbleUICtx.drawing_area = gtk_drawing_area_new ();
00578     if (g_slideshow_enable)
00579     {
00580         gtk_widget_set_size_request (GTK_WIDGET (scribbleUICtx.drawing_area),
00581                 SCREEN_WIDTH, SCREEN_HEIGHT);
00582     }
00583     else
00584     {
00585         gtk_widget_set_size_request (GTK_WIDGET (scribbleUICtx.drawing_area), 
00586                 SCREEN_WIDTH, SCREEN_HEIGHT - TOOLBAR_HEIGHT - PAGEBAR_HEIGHT);
00587     }
00588     gtk_box_pack_start (GTK_BOX (vbox), scribbleUICtx.drawing_area, TRUE, 
00589                         TRUE, 0);
00590     gtk_widget_show (scribbleUICtx.drawing_area);
00591 
00592     /* Signals used to handle backing pixmap */
00593     g_signal_connect (G_OBJECT (scribbleUICtx.drawing_area), 
00594                       "expose_event", 
00595                       G_CALLBACK (expose_event), 
00596                       &scribbleUICtx);
00597 
00598     /* Event signals */
00599     g_signal_connect (G_OBJECT (scribbleUICtx.drawing_area), 
00600                       "motion_notify_event",
00601                       G_CALLBACK (motion_notify_event), 
00602                       &scribbleUICtx);
00603     g_signal_connect (G_OBJECT (scribbleUICtx.drawing_area), 
00604                       "button_press_event",
00605                       G_CALLBACK (button_press_event), 
00606                       &scribbleUICtx);
00607     g_signal_connect (G_OBJECT (scribbleUICtx.drawing_area), 
00608                       "button_release_event",
00609                       G_CALLBACK (button_release_event), 
00610                       &scribbleUICtx);
00611     
00612     // catch the key-events in the toplevel window
00613     // update scribbleUICtx.drawing_area to main widow
00614     g_signal_connect (G_OBJECT (window), 
00615                        "key_press_event", 
00616                        G_CALLBACK(on_mainWindow_keypress), 
00617                        &scribbleUICtx);
00618 
00619     gtk_widget_set_events (scribbleUICtx.drawing_area, 
00620                            GDK_EXPOSURE_MASK |
00621                            GDK_LEAVE_NOTIFY_MASK |
00622                            GDK_BUTTON_PRESS_MASK |
00623                            GDK_BUTTON_RELEASE_MASK |
00624                            GDK_POINTER_MOTION_MASK );
00625     
00626     gtk_widget_set_events (window, GDK_KEY_PRESS_MASK);
00627 
00628     g_timeout_handler_id = 
00629             g_timeout_add (100, flush_points, &scribbleUICtx);
00630     if (g_timeout_handler_id)
00631     {
00632         gtk_widget_show(window);
00633         installIpcServer(&scribbleUICtx);        
00634         //pagebar and toolbar should be initialized after 
00635         //g_init,gtk_init and even the ipc server installed...
00636         initPageBarAndToolBar(&scribbleUICtx); 
00637         initPixMap(&scribbleUICtx);
00638         //init and start thread for save result page.
00639         if( 0!=initSaveThread(&scribbleUICtx) )
00640         {
00641             SB_ERRORPRINTF("Error when create save thread\n");
00642             return (-1);
00643         }
00644         jump_to_page(&scribbleUICtx);//jump to current page.            
00645         
00646         gdk_threads_enter();
00647         gtk_main ();
00648         gdk_threads_leave();
00649 
00650         //stop IPC server, allowing a new app started while we are saving
00651         stopIpcServer();
00652 
00653         //save scribble, terminate save-thread and wait till it is done.
00654         savePageAndResultImg(&scribbleUICtx,TRUE);
00655         exitSaveThread();   
00656 
00657         g_source_remove (g_timeout_handler_id);
00658     }
00659     close (scribbleUICtx.fbdev);
00660     SB_TIMEDISPLAY("main quit...\n");
00661     return (0);
00662 }

Here is the call graph for this function:

static gboolean motion_notify_event ( GtkWidget *  widget,
GdkEventMotion *  event,
gpointer  data 
) [static]

Definition at line 289 of file ScribbleUI.c.

00292 {
00293     //SB_LOGPRINTF("__start__\n");
00294     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00295     if (  !  (event->is_hint) 
00296               && (pScribbleUICtx->pen_down)
00297               && (event->x < widget->allocation.width) 
00298               && (event->y < widget->allocation.height)  )
00299     {
00300         if( toolbar_is_drawing()  &&  !g_slideshow_enable )
00301         {
00302             core_add_point(pScribbleUICtx,event->x, event->y);
00303         }
00304         else if ( toolbar_is_erasing() )
00305         {
00306             GdkPoint curPoint;
00307             curPoint.x=event->x;
00308             curPoint.y=event->y;
00309             eraseStrokes(pScribbleUICtx,&curPoint);
00310             pScribbleUICtx->lastPoint.x=event->x;
00311             pScribbleUICtx->lastPoint.y=event->y;
00312         }
00313     }
00314   //SB_LOGPRINTF("__end__\n");
00315     return TRUE;
00316 }

Here is the call graph for this function:

guint on_mainWindow_keypress ( GtkWidget *  widget,
GdkEventKey *  event,
gpointer  data 
)

Definition at line 320 of file ScribbleUI.c.

00323 {
00324     SB_LOGPRINTF("on_mainWindow_keypress - event 0x%x\n", event->keyval);
00325     
00326     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00327     int iCurrPage=getCurrPageNo(&pScribbleUICtx->fileManager);
00328     switch (event->keyval)
00329     {
00330         case GDK_Page_Down:
00331             SB_LOGPRINTF("jumping to the next page\n");
00332             iCurrPage++;     
00333             break;
00334             case GDK_F1:
00335             SB_LOGPRINTF("PAGETURN_FORWARD LONG\n");
00336             iCurrPage+=5;
00337             break;
00338         case GDK_Page_Up:
00339             iCurrPage--;
00340             break;
00341         case GDK_F2:
00342             SB_LOGPRINTF("PAGETURN_BACK LONG\n");
00343             iCurrPage-=5;
00344             break;
00345         case GDK_F5:
00346         case GDK_Home:
00347             SB_LOGPRINTF("PAGETURN_HOME,For quitting...\n");
00348             quit(pScribbleUICtx);//it has exited all threads.     
00349             return 1;
00350         
00351         default:
00352             // Unhandled key pressed
00353             erbusy_off();
00354             return 1;
00355     } // switch
00356     //correct function.,
00357     resetCurrentPage(pScribbleUICtx,iCurrPage);
00358     erbusy_off();
00359     return 1;// return TRUE => stop event handling 
00360 }

Here is the call graph for this function:

static gboolean on_slideshow_nextpage ( gpointer  data  )  [static]

Definition at line 364 of file ScribbleUI.c.

00365 {
00366     PScribbleUICtx pScribbleUICtx=(PScribbleUICtx)data;
00367     int iCurrPage = getCurrPageNo(&pScribbleUICtx->fileManager);
00368 
00369     SB_LOGPRINTF("current page [%d]", iCurrPage);
00370 
00371     if (iCurrPage < getTotalPage(&pScribbleUICtx->fileManager))
00372     {
00373         iCurrPage++;
00374     }
00375     else
00376     {
00377         iCurrPage = 1;
00378     }
00379 
00380     SB_LOGPRINTF("new page [%d]", iCurrPage);
00381     resetCurrentPage(pScribbleUICtx,iCurrPage);
00382 
00383     return TRUE;  // call me again, please
00384 }

Here is the call graph for this function:

int parse_args ( int  argc,
char *  argv[],
ScribbleUICtx pScribbleUICtx 
)

Definition at line 468 of file ScribbleUI.c.

00471 {
00472     int i, j;
00473 
00474     //parse command-line options
00475     for (i = 1 ; i < argc ; )
00476     {
00477         if (strcmp(argv[i], "--slideshow") == 0)
00478         {
00479             g_slideshow_enable = TRUE;
00480             for (j = i ; j < argc - 1 ; j++)
00481             {
00482                 argv[j] = argv[j + 1];
00483             }
00484             argc = argc - 1;
00485         }
00486         else if (   i < argc - 1
00487                  && strcmp(argv[i], "--interval") == 0 )
00488         {
00489             j = atoi(argv[i + 1]);
00490             if (j >= 2)
00491             {
00492                 g_slideshow_interval = j;
00493             }
00494             for (j = i ; j < argc - 2 ; j++)
00495             {
00496                 argv[j] = argv[j + 2];
00497             }
00498             argc = argc - 2;
00499         }
00500         else
00501         {
00502             i++;
00503         }
00504     }
00505     
00506     //printarg(argc,argv);
00507     PFileManager pFM=&pScribbleUICtx->fileManager;
00508     
00509     if(   (3!=argc ) 
00510        || ( isStrEmpty(argv[1]) && isStrEmpty(argv[2])) )
00511     {
00512         SB_ERRORPRINTF("Usage:%s [manifest] |[tmpimagename]\n", argv[0]);
00513         return -1;
00514     } 
00515     
00516     if( isStrEmpty(argv[1]) )
00517     {//currently, use template.
00518         return initFileManagerByTmpl(pFM,argv[2]);    
00519     }
00520     //else start with manifest
00521     return initFileManagerByManifest(pFM,argv[1]);
00522 }

Here is the call graph for this function:

void printarg ( const int  argc,
char *  argv[] 
)

Definition at line 457 of file ScribbleUI.c.

00458 {
00459     printf("\n======paralist========\n");
00460     int i;
00461     for(i=0;i<argc;i++)
00462     {
00463         printf("argv[%d]=%s\n", i,argv[i]);
00464     }
00465     printf("\n======================\n");
00466 }

void quit ( gpointer  data  ) 

void destroyScribbleUICtx(PScribbleUICtx pScribbleUICtx) { if(pScribbleUICtx) { destroyScribbleCoreCtx(&pScribbleUICtx->scribbleCoreCtx); FreeFileManager(&pScribbleUICtx->fileManager); } }

Definition at line 399 of file ScribbleUI.c.

00400 {
00401     SB_LOGPRINTF("__start__\n");
00402 
00403     // show busy, stop GTK main loop
00404     erbusy_blink();
00405     gtk_main_quit();
00406 }

Here is the call graph for this function:

void resetCurrentPage ( PScribbleUICtx  pScribbleUICtx,
const int  iNewPageNum 
)

Definition at line 75 of file ScribbleUI.c.

00077 {
00078     SB_LOGPRINTF("__start__\n");
00079     PFileManager pFM=&pScribbleUICtx->fileManager;
00080     int iOldCurrPage=getCurrPageNo(pFM);
00081     SB_LOGPRINTF("\nold current=%d,wanto=%d\n",iOldCurrPage,iNewPageNum);
00082     if( iNewPageNum==iOldCurrPage )
00083     { 
00084         SB_LOGPRINTF("no need to chage page,curr==%d\n",iNewPageNum);
00085         return;
00086     }
00087     //when switch, save current page.
00088     savePageAndResultImg(pScribbleUICtx,FALSE);
00089 
00090     jumptoScribPage(pFM,iNewPageNum);
00091     int iNewCurrPage=getCurrPageNo(pFM);
00092     SB_LOGPRINTF("\nnew current=%d\n",iNewCurrPage);
00093     if( iOldCurrPage==iNewCurrPage )
00094     { 
00095         SB_LOGPRINTF("no need to chage page,last curr==%d\n",iNewCurrPage);
00096         return;
00097     }
00098 
00099     SB_LOGPRINTF("will jump to %d\n",getCurrPageNo(pFM));
00100     flushPageBar(pFM);
00101     //reset toolbar
00102     toolbar_reinit( getTotalPage(pFM) );
00103     jump_to_page(pScribbleUICtx);
00104     SB_LOGPRINTF("__finish__\n");
00105 }

Here is the call graph for this function:


Variable Documentation

gboolean g_slideshow_enable = FALSE [static]

Copyright (C) 2005-2008 iRex Technologies B.V. All rights reserved.

Definition at line 50 of file ScribbleUI.c.

gint g_slideshow_interval = 10 [static]

Definition at line 51 of file ScribbleUI.c.


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