static GList* gtk2perl_cell_layout_get_cells (GtkCellLayout *cell_layout) { GList * cells = NULL; GET_METHOD (cell_layout, "GET_CELLS"); if (METHOD_EXISTS) { int count; PREP (cell_layout); PUTBACK; count = call_sv ((SV *) GvCV (slot), G_ARRAY); SPAGAIN; while (count > 0) { SV * sv = POPs; cells = g_list_prepend (cells, SvGtkCellRenderer (sv)); count--; } PUTBACK; FINISH; } return cells; }
DocViewCallback( JNIEnv * env, LVDocView * docview, jobject obj ) : _env(env), _docview(docview) { jclass objclass = _env->GetObjectClass(obj); jfieldID fid = _env->GetFieldID(objclass, "readerCallback", "Lorg/coolreader/crengine/ReaderCallback;"); _obj = _env->GetObjectField(obj, fid); _class = _env->GetObjectClass(_obj); #define GET_METHOD(n,sign) \ _ ## n = _env->GetMethodID(_class, # n, sign) GET_METHOD(OnLoadFileStart,"(Ljava/lang/String;)V"); GET_METHOD(OnLoadFileFormatDetected,"(Lorg/coolreader/crengine/DocumentFormat;)Ljava/lang/String;"); GET_METHOD(OnLoadFileEnd,"()V"); GET_METHOD(OnLoadFileFirstPagesReady,"()V"); GET_METHOD(OnLoadFileProgress,"(I)Z"); GET_METHOD(OnFormatStart,"()V"); GET_METHOD(OnFormatEnd,"()V"); GET_METHOD(OnFormatProgress,"(I)Z"); GET_METHOD(OnExportProgress,"(I)Z"); GET_METHOD(OnLoadFileError,"(Ljava/lang/String;)V"); GET_METHOD(OnExternalLink,"(Ljava/lang/String;Ljava/lang/String;)V"); GET_METHOD(OnImageCacheClear,"()V"); _oldcallback = _docview->setCallback( this ); }