Line data Source code
1 : /* Copyright (C) 2007-2012 by George Williams */
2 : /*
3 : * Redistribution and use in source and binary forms, with or without
4 : * modification, are permitted provided that the following conditions are met:
5 :
6 : * Redistributions of source code must retain the above copyright notice, this
7 : * list of conditions and the following disclaimer.
8 :
9 : * Redistributions in binary form must reproduce the above copyright notice,
10 : * this list of conditions and the following disclaimer in the documentation
11 : * and/or other materials provided with the distribution.
12 :
13 : * The name of the author may not be used to endorse or promote products
14 : * derived from this software without specific prior written permission.
15 :
16 : * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17 : * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 : * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19 : * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 : * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 : * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22 : * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 : * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 : * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 : * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 : */
27 : #include <stdlib.h>
28 : #include "gdraw.h"
29 : #include "ggadgetP.h"
30 : #include "ustring.h"
31 : #include "gkeysym.h"
32 : #include "gresource.h"
33 :
34 : static GBox spacer_box = GBOX_EMPTY;
35 : static int gspacer_inited = false;
36 :
37 0 : static int gspacer_expose(GWindow pixmap, GGadget *g, GEvent *event) {
38 0 : return( true );
39 : }
40 :
41 0 : static int gspacer_mouse(GGadget *g, GEvent *event) {
42 0 : return( false );
43 : }
44 :
45 0 : static int gspacer_key(GGadget *g, GEvent *event) {
46 0 : return(false);
47 : }
48 :
49 0 : static int gspacer_focus(GGadget *g, GEvent *event) {
50 0 : return(false);
51 : }
52 :
53 0 : static void gspacer_destroy(GGadget *g) {
54 :
55 0 : if ( g==NULL )
56 0 : return;
57 0 : _ggadget_destroy(g);
58 : }
59 :
60 0 : static void GSpacerSetTitle(GGadget *g,const unichar_t *tit) {
61 0 : }
62 :
63 0 : static const unichar_t *_GSpacerGetTitle(GGadget *g) {
64 0 : return( NULL );
65 : }
66 :
67 0 : static void _gspacer_resize(GGadget *g, int32 width, int32 height ) {
68 :
69 0 : g->inner.height = g->r.height = height;
70 0 : g->inner.width = g->r.width = width;
71 0 : }
72 :
73 : struct gfuncs gspacer_funcs = {
74 : 0,
75 : sizeof(struct gfuncs),
76 :
77 : gspacer_expose,
78 : gspacer_mouse,
79 : gspacer_key,
80 : NULL,
81 : gspacer_focus,
82 : NULL,
83 : NULL,
84 :
85 : _ggadget_redraw,
86 : _ggadget_move,
87 : _gspacer_resize,
88 : _ggadget_setvisible,
89 : _ggadget_setenabled,
90 : _ggadget_getsize,
91 : _ggadget_getinnersize,
92 :
93 : gspacer_destroy,
94 :
95 : GSpacerSetTitle,
96 : _GSpacerGetTitle,
97 : NULL,
98 : NULL,
99 : NULL,
100 :
101 : NULL,
102 : NULL,
103 :
104 : NULL,
105 : NULL,
106 : NULL,
107 : NULL,
108 : NULL,
109 : NULL,
110 : NULL,
111 : NULL,
112 : NULL,
113 : NULL,
114 : NULL,
115 :
116 : _ggadget_getDesiredSize,
117 : _ggadget_setDesiredSize,
118 : NULL,
119 : NULL
120 : };
121 :
122 0 : static void GSpacerInit() {
123 0 : spacer_box.border_type = bt_none;
124 0 : spacer_box.border_width = spacer_box.padding = spacer_box.flags = 0;
125 0 : gspacer_inited = true;
126 0 : }
127 :
128 0 : GGadget *GSpacerCreate(struct gwindow *base, GGadgetData *gd,void *data) {
129 0 : GSpacer *gs = calloc(1,sizeof(GSpacer));
130 :
131 0 : if ( !gspacer_inited )
132 0 : GSpacerInit();
133 0 : gs->funcs = &gspacer_funcs;
134 0 : _GGadget_Create(gs,base,gd,data,&spacer_box);
135 :
136 0 : return( gs );
137 : }
|