-
Notifications
You must be signed in to change notification settings - Fork 0
/
scrollbar.h
56 lines (42 loc) · 1.67 KB
/
scrollbar.h
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
/**********************************************************************
* scrollbar.h - declares scrollbar object
*
* Copyright 1993, David Nedde
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purpose and without fee is granted
* provided that the above copyright notice appears in all copies.
* It is provided "as is" without express or implied warranty.
**********************************************************************/
#ifndef __SCROLLBAR_H__
#define __SCROLLBAR_H__
#include <X11/Intrinsic.h>
#include "list.h"
typedef struct {
Widget form;
Widget label;
Widget scale;
#ifdef ATHENA
Widget feedback; /* Used to display value like Motif scale widget */
#endif
int value; /* Current value of the scrollbar */
list_type callbacks; /* List of callbacks on this scrollbar */
} scrollbar_struct, *scrollbar_type;
/* We need to make the callbacks ourself, because the callback data is
so different between Motif and Athena */
typedef struct {
int reason;
XEvent * event;
int value;
int pixel;
} scrollbarCallbackStruct;
typedef void (*scrollbarCallbackProc)(/* Widget, caddr_t closure,
scrollbarCallbackStruct call_data */);
/* Inline functions */
#define scrollbar__get_value( scrollbar) ((scrollbar)->value)
/* Regular functions */
scrollbar_type scrollbar__create(/* Widget w */);
void scrollbar__destroy(/* scrollbar_type scrollbar */);
void scrollbar__set_value(/* scrollbar_type *, int value */);
void scrollbar__add_callback(/* scrollbar, proc, closure*/);
#endif