summaryrefslogtreecommitdiff
path: root/SmartDeviceLink/SDLShow.h
blob: b941d16259f87b677f0ccbcf16c0626f773cbd12 (plain)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
//  SDLShow.h
//

#import "SDLRPCRequest.h"

@class SDLImage;
@class SDLSoftButton;
@class SDLMetadataTags;
@class SDLTextAlignment;
@class SDLMetadataType;


/**
 * Updates the application's display text area, regardless of whether or not
 * this text area is visible to the user at the time of the request. The
 * application's display text area remains unchanged until updated by subsequent
 * calls to Show
 * <p>
 * The content of the application's display text area is visible to the user
 * when the application
 * is FULL or LIMITED, and the
 * SDLSystemContext=MAIN and no
 * SDLAlert is in progress
 * <p>
 * The Show operation cannot be used to create an animated scrolling screen. To
 * avoid distracting the driver, Show commands cannot be issued more than once
 * every 4 seconds. Requests made more frequently than this will be rejected
 * <p>
 * <b>HMILevel needs to be FULL, LIMITED or BACKGROUND</b>
 * </p>
 *
 * Since SmartDeviceLink 1.0
 * See SDLAlert SDLSetMediaClockTimer
 */
@interface SDLShow : SDLRPCRequest {
}

/**
 * @abstract Constructs a new SDLShow object
 */
- (instancetype)init;
/**
 * @abstract Constructs a new SDLShow object indicated by the dictionary parameter
 * @param dict The dictionary to use
 */
- (instancetype)initWithDictionary:(NSMutableDictionary *)dict;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type alignment:(SDLTextAlignment *)alignment;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLMetadataType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLMetadataType *)mainField4Type alignment:(SDLTextAlignment *)alignment;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack;

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray<SDLSoftButton *> *)softButtons (NSArray<NSString *> *)customPresets (SDLMetadataStruct *)metadata instead"));

- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray<SDLSoftButton *> *)softButtons customPresets:(NSArray<NSString *> *)customPresets textFieldMetadata:(SDLMetadataTags *)metadata;


/**
 * @abstract The text displayed in a single-line display, or in the upper display
 * line in a two-line display
 * @discussion The String value representing the text displayed in a
 *            single-line display, or in the upper display line in a
 *            two-line display
 *            <p>
 *            <b>Notes: </b>
 *            <ul>
 *            <li>If this parameter is omitted, the text of mainField1 does
 *            not change</li>
 *            <li>If this parameter is an empty string, the field will be
 *            cleared</li>
 *            </ul>
 */
@property (strong) NSString *mainField1;
/**
 * @abstract The text displayed on the second display line of a two-line display
 *
 * @discussion The String value representing the text displayed on the second
 *            display line of a two-line display
 *            <p>
 *            <b>Notes: </b>
 *            <ul>
 *            <li>If this parameter is omitted, the text of mainField2 does
 *            not change</li>
 *            <li>If this parameter is an empty string, the field will be
 *            cleared</li>
 *            <li>If provided and the display is a single-line display, the
 *            parameter is ignored</li>
 *            <li>Maxlength = 500</li>
 *            </ul>
 */
@property (strong) NSString *mainField2;
/**
 * @abstract The text displayed on the first display line of the second page
 *
 * @discussion The String value representing the text displayed on the first
 *            display line of the second page
 *            <p>
 *            <b>Notes: </b>
 *            <ul>
 *            <li>If this parameter is omitted, the text of mainField3 does
 *            not change</li>
 *            <li>If this parameter is an empty string, the field will be
 *            cleared</li>
 *            <li>If provided and the display is a single-line display, the
 *            parameter is ignored</li>
 *            <li>Maxlength = 500</li>
 *            </ul>
 * @since SmartDeviceLink 2.0
 */
@property (strong) NSString *mainField3;
/**
 * @abstract The text displayed on the second display line of the second page
 *
 * @discussion The String value representing the text displayed on the second
 *            display line of the second page
 *            <p>
 *            <b>Notes: </b>
 *            <ul>
 *            <li>If this parameter is omitted, the text of mainField4 does
 *            not change</li>
 *            <li>If this parameter is an empty string, the field will be
 *            cleared</li>
 *            <li>If provided and the display is a single-line display, the
 *            parameter is ignored</li>
 *            <li>Maxlength = 500</li>
 *            </ul>
 * @since SmartDeviceLink 2.0
 */
@property (strong) NSString *mainField4;
/**
 * @abstract The alignment that Specifies how mainField1 and mainField2 text
 * should be aligned on display
 *
 * @discussion An Enumeration value
 *            <p>
 *            <b>Notes: </b>
 *            <ul>
 *            <li>Applies only to mainField1 and mainField2 provided on this
 *            call, not to what is already showing in display</li>
 *            <li>If this parameter is omitted, text in both mainField1 and
 *            mainField2 will be centered</li>
 *            <li>Has no effect with navigation display</li>
 *            </ul>
 */
@property (strong) SDLTextAlignment *alignment;
/**
 * @abstract Text in the Status Bar
 *
 * @discussion A String representing the text you want to add in the Status
 *            Bar
 *            <p>
 *            <b>Notes: </b><i>The status bar only exists on navigation
 *            displays</i><br/>
 *            <ul>
 *            <li>If this parameter is omitted, the status bar text will
 *            remain unchanged</li>
 *            <li>If this parameter is an empty string, the field will be
 *            cleared</li>
 *            <li>If provided and the display has no status bar, this
 *            parameter is ignored</li>
 *            </ul>
 */
@property (strong) NSString *statusBar;
/**
 * @abstract This property is deprecated use SetMediaClockTimer instead.
 * <p> The value for the MediaClock field using a format described in the
 * MediaClockFormat enumeration
 *
 * @discussion A String value for the MediaClock
 *            <p>
 *            <b>Notes: </b><br/>
 *            <ul>
 *            <li>Must be properly formatted as described in the
 *            MediaClockFormat enumeration</li>
 *            <li>If a value of five spaces is provided, this will clear
 *            that field on the display (i.e. the media clock timer field
 *            will not display anything)</li>
 *            </ul>
 */
@property (strong) NSString *mediaClock;
/**
 * @abstract The text in the track field
 *
 * @discussion A String value disaplayed in the track field
 *            <p>
 *            <b>Notes: </b><br/>
 *            <ul>
 *            <li>If parameter is omitted, the track field remains unchanged</li>
 *            <li>If an empty string is provided, the field will be cleared</li>
 *            <li>This field is only valid for media applications on navigation displays</li>
 *            </ul>
 */
@property (strong) NSString *mediaTrack;
/**
 * @abstract An image to be shown on supported displays
 *
 * @discussion The value representing the image shown on supported displays
 *            <p>
 *            <b>Notes: </b>If omitted on supported displays, the displayed
 *            graphic shall not change<br/>
 * @since SmartDeviceLink 2.0
 */
@property (strong) SDLImage *graphic;
/**
 * @abstract An image to be shown on supported displays
 *
 * @discussion The value representing the image shown on supported displays
 *            <p>
 *            <b>Notes: </b>If omitted on supported displays, the displayed
 *            graphic shall not change<br/>
 * @since SmartDeviceLink 2.0
 */
@property (strong) SDLImage *secondaryGraphic;
/**
 * @abstract The the Soft buttons defined by the App
 *
 * @discussion A Vector value represemting the Soft buttons defined by the
 *            App
 *            <p>
 *            <b>Notes: </b><br/>
 *            <ul>
 *            <li>If omitted on supported displays, the currently displayed
 *            SoftButton values will not change</li>
 *            <li>Array Minsize: 0</li>
 *            <li>Array Maxsize: 8</li>
 *            </ul>
 *
 * @since SmartDeviceLink 2.0
 */
@property (strong) NSMutableArray *softButtons;
/**
 * @abstract The Custom Presets defined by the App
 *
 * @discussion A Vector value representing the Custom Presets defined by the
 *            App
 *            <p>
 *            <ul>
 *            <li>If omitted on supported displays, the presets will be shown as not defined</li>
 *            <li>Array Minsize: 0</li>
 *            <li>Array Maxsize: 6</li>
 *            </ul>
 * @since SmartDeviceLink 2.0
 */
@property (strong) NSMutableArray *customPresets;

/**
 * @abstract Text Field Metadata
 *
 * @discussion A Vector value representing the Custom Presets defined by the
 *            App
 *            <p>
 *            App defined metadata information. See MetadataStruct. Uses mainField1, mainField2, mainField3, mainField4.
 *            If omitted on supported displays, the currently set metadata tags will not change.
 *            If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed.
 * @since SmartDeviceLink 2.0
 */
@property (strong) SDLMetadataTags *metadataTags;

@end