Added some missing headers reported by /usr/lib/build/checks-data/check_gcc_output
[scilab.git] / scilab / modules / gui / src / c / CreateUIControl.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Vincent COUVERT
4  * Create Java object matching Scilab uicontrol 
5  * 
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at    
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13
14 #include <string.h>
15 #include "CreateUIControl.h"
16 #include "BuildObjects.h"
17 #include "ObjectStructure.h"
18 #include "PushButton.h"
19 #include "EditBox.h"
20 #include "Label.h"
21 #include "CheckBox.h"
22 #include "RadioButton.h"
23 #include "Slider.h"
24 #include "PopupMenu.h"
25 #include "ListBox.h"
26 #include "Frame.h"
27 #include "DestroyObjects.h" /* sciStandardDestroyOperations */
28
29 /**CreateUIControl
30  * This function creates Uicontrol structure.
31  * @param char style[]: the type of the uicontrol object
32  * @return  : pointer sciPointObj if ok , NULL if not
33  */
34 sciPointObj * CreateUIControl(char *style)
35 {
36   sciPointObj *pobj = (sciPointObj *) NULL;
37
38   if ((pobj = MALLOC (sizeof (sciPointObj))) == NULL)   return (sciPointObj *) NULL;
39
40   sciSetEntityType (pobj, SCI_UICONTROL);
41
42   if ((pobj->pfeatures = MALLOC ((sizeof (sciUicontrol)))) == NULL)
43     {
44       FREE(pobj);
45       return (sciPointObj *) NULL;
46     }
47
48   /* Color property */
49   /* The getter for Colors returns get the value from Java if ****groundcolor is NULL */
50   pUICONTROL_FEATURE (pobj)->backgroundcolor = NULL;
51   pUICONTROL_FEATURE (pobj)->foregroundcolor = NULL;
52
53   /* Callback */
54   /* The getter for Callback returns "" if Callback is NULL */
55   pUICONTROL_FEATURE (pobj)->callback = NULL;
56   pUICONTROL_FEATURE (pobj)->callbackType = -1; /* Disabled */
57
58   pUICONTROL_FEATURE (pobj)->handle_visible=TRUE;
59
60   /* Tag is set to NULL as default */
61   /* The getter for tag returns "" is tag is NULL */
62   pUICONTROL_FEATURE (pobj)->tag = NULL;
63
64   /* Value is set to NULL as default */
65   pUICONTROL_FEATURE (pobj)->value = NULL;
66   pUICONTROL_FEATURE (pobj)->valueSize = 0;
67
68   /* ListboxTop is set to NULL as default */
69   /* The getter for ListboxTop returns [] if ListboxTop is NULL */
70   pUICONTROL_FEATURE (pobj)->listboxTop = NULL;
71
72   /* Min/Max default values */
73   pUICONTROL_FEATURE (pobj)->max = 1;
74   pUICONTROL_FEATURE (pobj)->min = 0;
75
76   /* Font default */
77   pUICONTROL_FEATURE(pobj)->fontWeight = NORMAL_FONT;
78   pUICONTROL_FEATURE(pobj)->fontUnits = POINTS_UNITS;
79   pUICONTROL_FEATURE(pobj)->fontAngle = NORMAL_FONT;
80
81   /* Units default */
82   pUICONTROL_FEATURE(pobj)->units = PIXELS_UNITS;
83
84   /* Relief default */
85   if (style == NULL || strcmp(style,"pushbutton")==0)
86     {
87       pUICONTROL_FEATURE(pobj)->relief = RAISED_RELIEF;
88     }
89   else if (strcmp(style,"edit")==0)
90     {
91       pUICONTROL_FEATURE(pobj)->relief = SUNKEN_RELIEF;
92     }
93   else if (strcmp(style,"frame")==0)
94     {
95       pUICONTROL_FEATURE(pobj)->relief = RIDGE_RELIEF;
96     }
97   else
98     {
99       pUICONTROL_FEATURE(pobj)->relief = FLAT_RELIEF;
100     }
101
102   /* Alignment default */
103   pUICONTROL_FEATURE(pobj)->horizontalAlignment = CENTER_ALIGNMENT;
104   pUICONTROL_FEATURE(pobj)->verticalAlignment = MIDDLE_ALIGNMENT;
105
106   /* SliderStep is set to NULL as default */
107   /* The getter for SliderStep returns [0.01*(max-min) 0.1*(max-min)] if SliderStep is NULL */
108   /* Slider Step default */
109   pUICONTROL_FEATURE(pobj)->sliderStep = NULL;
110
111   sciStandardBuildOperations(pobj, NULL);
112
113   /* Default Style is PushButton */
114   if (style == NULL || strcmp(style,"pushbutton")==0)
115     {
116       createPushButton((sciPointObj *) pobj);
117       pUICONTROL_FEATURE (pobj)->style = SCI_PUSHBUTTON;
118     }
119   else if (strcmp(style,"edit")==0)
120     {
121       createEditBox((sciPointObj *) pobj);
122       pUICONTROL_FEATURE (pobj)->style = SCI_EDIT;
123     }
124   else if (strcmp(style,"text")==0)
125     {
126       createLabel((sciPointObj *) pobj);
127       pUICONTROL_FEATURE (pobj)->style = SCI_UITEXT;
128     }
129   else if (strcmp(style,"checkbox")==0)
130     {
131       createCheckBox((sciPointObj *) pobj);
132       pUICONTROL_FEATURE (pobj)->style = SCI_CHECKBOX;
133     }
134   else if (strcmp(style,"radiobutton")==0)
135     {
136       createRadioButton((sciPointObj *) pobj);
137       pUICONTROL_FEATURE (pobj)->style = SCI_RADIOBUTTON;
138     }
139   else if (strcmp(style,"slider")==0)
140     {
141       createSlider((sciPointObj *) pobj);
142       pUICONTROL_FEATURE (pobj)->style = SCI_SLIDER;
143     }
144   else if (strcmp(style,"popupmenu")==0)
145     {
146       createPopupMenu((sciPointObj *) pobj);
147       pUICONTROL_FEATURE (pobj)->style = SCI_POPUPMENU;
148     }
149   else if (strcmp(style,"listbox")==0)
150     {
151       createListBox((sciPointObj *) pobj);
152       pUICONTROL_FEATURE (pobj)->style = SCI_LISTBOX;
153     }
154   else if (strcmp(style,"frame")==0)
155     {
156       createFrame((sciPointObj *) pobj);
157       pUICONTROL_FEATURE (pobj)->style = SCI_UIFRAME;
158     }
159   else
160     {
161       sciprint(_("%s: Could not create uicontrol of type %s."), "CreateUIControl", style);
162       FREE(pobj);
163       return (sciPointObj *) NULL;
164     }
165       
166   return (sciPointObj *) pobj;
167 }
168 /*----------------------------------------------------------------------------*/
169