void save_cb(GtkButton *button, GtkWindow *window) { GtkWidget *dialog; int result; if (get_num_pages() == 0) return; if (is_new_file() == FALSE) { save_current_file(); return; } dialog = gtk_file_chooser_dialog_new("Save File", window, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); result = gtk_dialog_run(GTK_DIALOG(dialog)); if (result == GTK_RESPONSE_ACCEPT) { char *chosen_file_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); if (chosen_file_path != NULL) save_new_file(chosen_file_path); } gtk_widget_destroy(dialog); }
//--------------------------------------------------------------------------------------- GmoBoxDocPage* GmoBoxDocument::add_new_page() { m_pLastPage = LOMSE_NEW GmoBoxDocPage(NULL); //TODO creator imo? add_child_box(m_pLastPage); m_pLastPage->set_number(get_num_pages()); return m_pLastPage; }
void lfree(void* ptr) { LOG_PROLOG(); lpage_t *lptr = get_lptr(ptr); assert(is_lpage_aligned(lptr)); uint32_t num_pages = get_num_pages(lptr); munmap(ptr, num_pages * PAGE_SIZE); LOG_EPILOG(); }
void GotoPageEntry(Evas *e, Evas_Object *obj) { char *tempstr; asprintf(&tempstr,"Page? (%d/%d)",get_cur_page()+1,get_num_pages()); gotopageentrybox=init_entrybox(e,tempstr,"",4,goto_page_entryhandler,obj); free(tempstr); int x,y,w,h; evas_object_geometry_get(gotopageentrybox,&x,&y,&w,&h); evas_object_move(gotopageentrybox,(int)(((double)get_win_width()-w)/2.0),(int)(((double)get_win_height()-h)/2.0)); }
//hpan entrybox void goto_page_entryhandler(Evas *e, Evas_Object *obj,char *value) { if(value) { int numval=(int)strtol(value,NULL,10); if(numval>0 && numval<=get_num_pages()) { goto_page(numval-1); } free(value); } }
size_t get_num_pages_from_payload(void* pptr) { return get_num_pages(get_lptr(pptr)); }