~gloobus-dev/gloobus-preview/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef _ICOMIC_
#define _ICOMIC_

#ifndef PLUGIN_LOADER

//#include <gio/gio.h>
//#include <string.h>

//#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

//#include "../gloobus-preview-plugin-manager.h"
#include "../gloobus-preview-interface-document.h"

using namespace std;

class iComic : public iDocument
{
	private:
		int						m_n_pages;
		vector<string>			m_pagenames;
		char				*	m_extract_command;
		char				*	m_list_command;
		int						m_width;
		int						m_height;
		double					m_scale;
	
	public:
								iComic (void);
								~iComic (void);
		virtual int				get_n_pages		( void );
		virtual int				get_page_width	( void );
		virtual int				get_page_height	( void );
		virtual GdkPixbuf*		get_page_pixbuf	( int n_page );
		virtual GtkWidget*		get_page		( int );
		virtual void			end_plugin		( void );
				bool			check_valid		( char * filename);
				bool			load_doc		( void );
	
	private:
				void			get_page_scale	( void );
				void			calculate_size	( void );
				void			sort_pagenames	( void );
};


extern "C" interface * create() {
    return new iComic;
}

extern "C" void destroy(interface * p) {
    delete (iComic*)p;
}

extern "C" int getVersion() {
	return MANAGER_VERSION;
}

#endif

#ifdef PLUGIN_LOADER

PluginManager::register_plugin("comic");

PluginManager::register_filetype("application/x-cbz", 1);
PluginManager::register_filetype("application/x-cbr", 1);

#endif

#endif