File: columnview.h

package info (click to toggle)
nip2 8.9.1-2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 23,404 kB
  • sloc: ansic: 64,076; sh: 4,681; yacc: 1,133; makefile: 927; lex: 386; xml: 40; perl: 17
file content (105 lines) | stat: -rw-r--r-- 3,564 bytes parent folder | download | duplicates (7)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* view of a column
 */

/*

    Copyright (C) 1991-2003 The National Gallery

    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.,
    51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

 */

/*

    These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk

*/

#define TYPE_COLUMNVIEW (columnview_get_type())
#define COLUMNVIEW( obj ) \
	(GTK_CHECK_CAST( (obj), TYPE_COLUMNVIEW, Columnview ))
#define COLUMNVIEW_CLASS( klass ) \
	(GTK_CHECK_CLASS_CAST( (klass), TYPE_COLUMNVIEW, ColumnviewClass ))
#define IS_COLUMNVIEW( obj ) (GTK_CHECK_TYPE( (obj), TYPE_COLUMNVIEW ))
#define IS_COLUMNVIEW_CLASS( klass ) \
	(GTK_CHECK_CLASS_TYPE( (klass), TYPE_COLUMNVIEW ))

/* State ... for mouse titlebar interactions.
 */
typedef enum {
	COL_WAIT,		/* Rest state */
	COL_SELECT,		/* Select start, but no drag yet */
	COL_DRAG,		/* Drag state */
        COL_EDIT		/* Editing caption */
} ColumnviewState;

struct _Columnview {
	View view;

	/* Our enclosing workspaceview.
	 */
	Workspaceview *wview;

        /* Display parts.
         */
        GtkWidget *main; 		/* Enclosing window for whole cview */
        GtkWidget *lab;               	/* Columnview name label */
        GtkWidget *vbox;               	/* Outermost vbox for cview */
        GtkWidget *frame;              	/* Enclosing frame for tally stuff */
        GtkWidget *title;              	/* Eventbox wrapper for title bar */
        GtkWidget *titlehb;            	/* Title bar hbox */
        GtkWidget *updown;             	/* Fold up/down arrow */
        GtkWidget *updownb;            	/* Fold up/down button */
        GtkWidget *head;               	/* Label on columnview */
        GtkWidget *headfr;             	/* Frame wrapper around label */
        GtkWidget *text;               	/* Text entry at bottom */
        GtkWidget *textfr;             	/* Enclosing stuff for text entry */
        GtkWidget *capedit;            	/* Shadow text for editing caption */

	/* A shadow for this cview, used during drag to show where this column
	 * will end up.
	 *
	 * And if we are a shadow, the master cview we are the shadow for.
	 */
	Columnview *shadow;
	Columnview *master;

        /* Appearance state info.
         */
        int lx, ly;			/* last pos we set */
        ColumnviewState state;         	/* Waiting or dragging */
        int sx, sy;                     /* Drag start point */
        int rx, ry;                     /* Drag offset */
        int tx, ty;                     /* Tally window pos in root cods */
	gboolean selected;		/* Last drawn in selected state? */

	/* We watch resize events and trigger a workspace relayout with these.
	 */
	int old_width;
	int old_height;
};

typedef struct _ColumnviewClass {
	ViewClass parent_class;

	/* My methods.
	 */
} ColumnviewClass;

void columnview_get_position( Columnview *cview, 
	int *x, int *y, int *w, int *h );

GtkType columnview_get_type( void );
View *columnview_new( void );