Project

General

Profile

Statistics
| Revision:

vdfsplat / AppSrc / Test.src @ 60

History | View | Annotate | Download (13.2 KB)

1
//  TestProject for Windows application
2

    
3
Use DFAllEnt.pkg
4
Use cCJStandardCommandBarSystem.pkg
5

    
6
Object oHtmlHelp is a cHtmlHelp
7
End_Object
8

    
9
Object oApplication is a cApplication
10
    Set pbPreserveEnvironment to False
11
    Set peHelpType to htHtmlHelp
12
End_Object
13

    
14
Use oEditContextMenu.pkg
15
Use oDEOEditContextMenu.pkg
16

    
17
Object oMain is a Panel
18

    
19
    Property Handle phoViewMenu 0
20
    Property Handle phoReportMenu 0
21

    
22
    Set Label to "Vdf bug SPLAT!"
23
    Set Location to 4 3
24
    Set Size to 300 650
25

    
26
    Object oCommandBarSystem is a cCJCommandBarSystem
27
        Set pbTimerUpdate to True
28

    
29
        Procedure OnCreateCommandBars
30
            Handle hoOptions
31
            Get OptionsObject to hoOptions
32
            Forward Send OnCreateCommandBars
33
        End_Procedure
34

    
35
        Object oMenuBar is a cCJMenuBar
36

    
37
            Object oFileMenu is a cCJMenuItem
38
                Set peControlType to xtpControlPopup          
39
                Set psCaption to "&File"
40
                Set psDescription to "Find, Save, Delete, Clear information or quit this application."
41
                Set psCategory to "Menus"
42

    
43
                Object oClearMenuItem is a cCJClearMenuItem
44
                    Set pbAddToDesignerMenu to True
45
                End_Object
46

    
47
                Object oClearAllMenu is a cCJClearAllMenuItem
48
                    Set pbAddToDesignerMenu to True
49
                End_Object
50

    
51
                Object oPromptMenuItem is a cCJPromptMenuItem
52
                    Set pbAddToDesignerMenu to True
53
                    Set pbControlBeginGroup to True
54
                End_Object
55

    
56
                Object oFindMenuItem is a cCJFindMenuItem
57
                    Set pbAddToDesignerMenu to True
58
                    Set pbControlBeginGroup to True
59
                End_Object
60

    
61
                Object oFindNextMenu is a cCJFindNextMenuItem
62
                    Set pbAddToDesignerMenu to True
63
                End_Object
64

    
65
                Object oFindPreviousMenu is a cCJFindPreviousMenuItem
66
                    Set pbAddToDesignerMenu to True
67
                End_Object
68

    
69
                Object oFindFirstMenu is a cCJFindFirstMenuItem
70
                    Set pbAddToDesignerMenu to True
71
                End_Object
72

    
73
                Object oFindLastMenu is a cCJFindLastMenuItem
74
                    Set pbAddToDesignerMenu to True
75
                End_Object
76

    
77
                Object oSaveMenuItem is a cCJSaveMenuItem
78
                    Set pbAddToDesignerMenu to True
79
                    Set pbControlBeginGroup to True
80
                End_Object
81

    
82
                Object oDeleteMenuItem is a cCJDeleteMenuItem
83
                    Set pbAddToDesignerMenu to True
84
                End_Object
85

    
86
                Object oExitMenu is a cCJExitMenuItem
87
                    Set pbControlBeginGroup to True
88
                End_Object
89

    
90
            End_Object
91

    
92
            Object oViewMenu is a cCJMenuItem
93
                Set peControlType to xtpControlPopup
94
                Set psCaption to "&View"
95
                Set psToolTip to "View"
96
                Set psDescription to "Available Views"
97

    
98
                Object ooRemoteDesktopMenuItem is a cCJMenuItem
99
                  Set psCaption to "oRemoteDesktop"
100
                  Set psTooltip to "oRemoteDesktop"
101
                
102
                  Procedure OnExecute Variant vCommandBarControl
103
                    Handle hoClient
104
                    Get Client_Id to hoClient
105
                    Send Activate_oRemoteDesktop of hoClient
106
                  End_Procedure
107
                End_Object
108
            End_Object
109

    
110
            Object oReportMenu is a cCJMenuItem
111
                Set peControlType to xtpControlPopup          
112
                Set psCaption to "&Report"
113
                Set psToolTip to "Report"
114
                Set psDescription to "Available Reports"
115
            End_Object
116

    
117
            Object oNavigateMenu is a cCJMenuItem
118
                Set peControlType to xtpControlPopup      
119
                Set psCaption to "&Navigate"    
120
                Set psTooltip to "Navigate"    
121
                Set psDescription to "Move to different areas of the application"
122

    
123
                Object oNextAreaMenu is a cCJNextAreaMenu
124
                End_Object
125

    
126
                Object oPriorAreaMenu is a cCJPriorAreaMenu
127
                End_Object
128

    
129
                Object oNextViewMenu is a cCJNextViewMenu
130
                End_Object
131

    
132
                Object oPriorViewMenu is a cCJPriorViewMenu
133
                End_Object
134

    
135
                Object oPromptMenu is a cCJPromptMenuItem
136
                    Set pbControlBeginGroup to True
137
                End_Object
138

    
139
                Object oZoomMenu is a cCJZoomMenuItem
140
                End_Object
141

    
142
            End_Object
143

    
144
            Object oWindowMenu is a cCJMDIWindowsMenuItem
145
                Set peControlType to xtpControlPopup      
146
                Set psCaption to "&Window"
147
                Set psToolTip to "Window"
148
                Set psDescription to "Display Current Views and set other display options."    
149

    
150
                // These are the static windows items. More will be created in onInitPopup 
151
                Object oDisplayOptionsMenu is a cCJMenuItem
152
                    Set peControlType to xtpControlPopup              
153
                    Set psCaption to "&Display Options"
154
                    Set psToolTip to "Display Options"
155
                    Set psDescription to "Set display options"
156

    
157
                    Object oStatusbarMenu is a cCJStatusbarMenuItem
158
                    End_Object
159

    
160
                    Object oAutoArrangeIconsMenu is a cCJAutoArrangeIconsMenuItem
161
                    End_Object
162

    
163
                    Object oRestoreMenusMenu is a cCJRestoreMenusMenuItem
164
                        Set pbControlBeginGroup to True
165
                    End_Object
166

    
167
                End_Object
168

    
169
                Object oCascadeMenu is a cCJCascadeMenuItem
170
                    Set pbControlBeginGroup to True
171
                End_Object
172

    
173
                Object oHorizTile is a cCJTileHorizontally
174
                End_Object
175

    
176
                Object oVertTile is a cCJTileVertically
177
                End_Object
178

    
179
                Object oMinimizeMenuItem is a cCJMinimizeWindowsMenuItem
180
                    Set pbControlBeginGroup to True
181
                End_Object
182

    
183
                Object oRestoreMenuItem is a cCJRestoreWindowsMenuItem
184
                End_Object
185

    
186
                Object oArrangeIconsMenuItem is a cCJAutoArrangeIconsMenuItem
187
                    Set pbControlBeginGroup to True
188
                End_Object
189

    
190
            End_Object
191

    
192
            Object oHelpMenu is a cCJMenuItem
193
                Set peControlType to xtpControlPopup    
194
                Set psCaption to "&Help"
195
                Set psDescription to "Access Information for learning and using this DataFlex application."
196
                Set psToolTip to "Help"
197

    
198
                Object oHelpMenuItem is a cCJHelpMenuItem 
199
                End_Object
200

    
201
                Object oAboutMenuItem is a cCJAboutMenuItem
202
                End_Object
203

    
204
            End_Object
205

    
206
        End_Object
207

    
208
        Object oFindToolBar is a cCJToolbar
209
            Set psTitle to "Finding Toolbar"
210

    
211
            Object oFindFirstTool is a cCJFindFirstMenuItem
212
            End_Object
213

    
214
            Object oFindPreviousTool is a cCJFindPreviousMenuItem
215
            End_Object
216

    
217
            Object oFindMenuTool is a cCJFindMenuItem
218
            End_Object
219

    
220
            Object oFindNextTool is a cCJFindNextMenuItem
221
            End_Object
222

    
223
            Object oFindLastTool is a cCJFindLastMenuItem
224
            End_Object
225

    
226
            Object oPromptToolItem is a cCJPromptMenuItem
227
                Set pbControlBeginGroup to True
228
            End_Object
229

    
230
        End_Object
231

    
232
        Object oFileToolBar is a cCJToolbar
233
            Set psTitle to "Data Entry Toolbar"
234

    
235
            Object oClearToolItem is a cCJClearMenuItem
236
                Set peControlStyle to xtpButtonIconAndCaption
237
            End_Object
238

    
239
            Object oClearAllToolItem2 is a cCJClearAllMenuItem
240
                Set peControlStyle to xtpButtonIconAndCaption
241
            End_Object
242

    
243
            Object oSaveToolItem is a cCJSaveMenuItem
244
                Set peControlStyle to xtpButtonIconAndCaption
245
                Set pbControlBeginGroup to True
246
            End_Object
247

    
248
            Object oDeleteToolItem is a cCJDeleteMenuItem
249
                Set peControlStyle to xtpButtonIconAndCaption
250
            End_Object
251

    
252
        End_Object
253

    
254
        Object oEditToolBar is a cCJToolbar
255
            Set psTitle to "Edit Toolbar"
256

    
257
            Object oCutToolbarItem is a cCJCutMenuItem
258
            End_Object
259

    
260
            Object oCopyToolbarItem is a cCJCopyMenuItem
261
            End_Object
262

    
263
            Object oPasteToolbarItem is a cCJPasteMenuItem
264
            End_Object
265

    
266
            Object oDeleteEditToolbarItem is a cCJDeleteEditMenuItem
267
                Set pbControlBeginGroup to True
268
            End_Object
269

    
270
        End_Object
271

    
272
        Object oStatusBar is a cCJStatusBar
273

    
274
            Object oStatusPane1 is a cCJStatusBarPane
275
                Set piID to sbpIDIdlePane
276
                Set pbStyleStretch to True
277
            End_Object
278

    
279
            Object oStatusPane2 is a cCJStatusBarPane
280
                Set phoViewPane to Self
281
                Set pbStyleStretch to True
282
            End_Object
283

    
284
        End_Object
285

    
286
        // for testing we define the view and report menus for auto activate
287
        Delegate Set phoViewMenu to (oViewMenu)
288
        Delegate Set phoReportMenu to (oReportMenu)
289

    
290
    End_Object
291

    
292
    Object oClientArea is a ClientArea
293

    
294
        Use StdAbout.pkg
295
      Use RemoteDesktop.vw
296

    
297
        Procedure Activate_About
298
            Send DoAbout "Test Windows Project" "0.0.0" "" "" ""
299
        End_Procedure
300

    
301
    End_Object
302

    
303

    
304
    // All of the code below are methods and augmentations which makes this work well as a test program. This:
305
    // 1. Supports an auto-activate feature where all dialogs in the view and report menu are activated upon startup
306
    // 2. forces the panel to resize if it is not large enough to accomodate all of the views.
307
    // This code was placed directly in the testproject template and, therefore, directly in the .src file so
308
    // a developer can easily modify this to fit their own needs. It is not expected that these techniques would
309
    // get used in actual deployed projects.
310

    
311
    // special test component code to activate all views and reports. For testing we assume
312
    // that you want to see everything.
313

    
314
    Procedure AutoActivate
315
        handle hoMenu
316

    
317
        // this activates all views from the view menu
318
        Get phoViewMenu to hoMenu
319
        If hoMenu begin
320
           Broadcast Send Execute of hoMenu
321
        End
322

    
323
        // this activates all views from the report view menu
324
        Get phoReportMenu to hoMenu
325
        If hoMenu begin
326
           Broadcast Send Execute of hoMenu
327
        End
328
    End_Procedure
329

    
330
    // This checks all views within the client area to make sure that they fit within
331
    // the client area. If not we will adjust the main panel so everything fits. This
332
    // can only be done after the objects are all activated.
333

    
334
    Procedure MakeGoodPanelSize
335
        Handle hoView hoClient
336
        Integer iSize iLoc iHeight iWidth iOldSize
337
        Get Client_Id to hoClient
338
        If hoClient begin
339
            Get GuiSize of hoClient to iOldSize  // starting size of client area
340
            Move (Hi(iOldSize)) to iHeight
341
            Move (Low(iOldSize)) to iWidth
342
            // for each mdi client see if it fits, keep track of largest size needed
343
            Get Next_Mdi_Dialog of hoClient True to hoView // find first
344
            While (hoView)
345
                Get GuiSize of hoView to iSize    // size of view
346
                Get GuiLocation of hoView to iLoc // location of view
347
                Move (hi(iSize)+hi(iLoc)+10 max iHeight)  to iHeight // max height needed (+10 is for wiggle room)
348
                Move (low(iSize)+low(iLoc)+10 max iWidth) to iWidth  // max width needed
349
                Get Next_Mdi_Dialog of hoClient False to hoView // find next view
350
            Loop
351
            Move (iHeight-hi(iOldSize) max 0) to iHeight // get delta compared to old size. We want delta
352
            Move (iWidth-low(iOldSize) max 0) to iWidth  // only if the new size is bigger (i.e., > 0)
353
            If  (iHeight>0 or iWidth>0) begin
354
                Get GuiSize to iOldSize // now add the delta to the panel size
355
                Set GuiSize to (hi(iOldSize)+iHeight) (low(iOldSize)+iWidth)
356
                Send Adjust_Logicals // adjust from gui to regular size
357
            End
358
        End
359
    End_Procedure
360

    
361
    // special test program  augmentation which opens all views and report views and
362
    // makes sure that the size of the panel is big enough
363

    
364
    Procedure End_Construct_Object
365
        Boolean bAutoActivate
366
        Get Auto_Activate_State to bAutoActivate
367
        Forward send End_Construct_Object
368
        If bAutoActivate begin
369
            Send AutoActivate       // activate all views and report views
370
            Send MakeGoodPanelSize  // make sure the panel is big enough for all of this
371
        End
372
    End_Procedure
373

    
374
End_Object
375

    
376
Start_UI