File: form.h

package info (click to toggle)
kobodeluxe 0.5.1-10
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, sid, trixie
  • size: 4,408 kB
  • sloc: ansic: 18,747; cpp: 18,203; sh: 3,192; makefile: 162
file content (84 lines) | stat: -rw-r--r-- 2,347 bytes parent folder | download | duplicates (5)
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
74
75
76
77
78
79
80
81
82
83
84
/*(GPL)
------------------------------------------------------------
   Kobo Deluxe - An enhanced SDL port of XKobo
------------------------------------------------------------
 * Copyright (C) 2001, 2007 David Olofson
 * Copyright (C) 2005 Erik Auerswald
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#ifndef	_KOBO_FORM_H_
#define	_KOBO_FORM_H_

#include "toolkit.h"
#include "cfgparse.h"

#define	LINE_H		9
#define	SPACE_SIZE	7

#define	BIG_LINE_H	18
#define	BIG_SPACE_SIZE	14

class kobo_form_t : public ct_form_t
{
	config_parser_t	*_data;
	//Called by build_all().
	void begin();
	void end();
  protected:
	ct_widget_t	*current_widget;
	ct_list_t	*current_list;
	int		ypos;
	int		_big;
	float		xoffs;
	ct_align_t	halign;
	virtual void init_widget(ct_widget_t *wg);

	//Toolkit
	void big();
	void medium();
	void small();
	void label(const char *cap);
	void yesno(const char *cap, int *var, int tag = 0);
	void onoff(const char *cap, int *var, int tag = 0);
	void spin(const char *cap, int *var, int min, int max,
			const char *unit, int tag = 0);
	void button(const char *cap, int tag = 0);
	void space(int lines = 1);

	//config_parser_t aware version! :-)
	void data(config_parser_t *_d);
	void editor(int handle, int tag = 0);
	void editor(const char *name, int tag = 0);

	//List tools
	void list(const char *cap, int *var, int tag = 0);
	void item(const char *cap, int value, int ind = 0);
	void perc_list(int first, int last, int step);
	void enum_list(int first, int last);

	//Internal wrapper for build()
	void build_all();
  public:
	kobo_form_t();
	virtual ~kobo_form_t();
	void next();
	void prev();
	virtual void change(int delta);
	virtual void build();
};

#endif