187 lines
7.4 KiB
Rexx
Executable File
187 lines
7.4 KiB
Rexx
Executable File
/*----------------------------------------------------------------------------*/
|
|
/* */
|
|
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
|
|
/* Copyright (c) 2005-2014 Rexx Language Association. All rights reserved. */
|
|
/* */
|
|
/* This program and the accompanying materials are made available under */
|
|
/* the terms of the Common Public License v1.0 which accompanies this */
|
|
/* distribution. A copy is also available at the following address: */
|
|
/* https://www.oorexx.org/license.html */
|
|
/* */
|
|
/* Redistribution and use in source and binary forms, with or */
|
|
/* without modification, are permitted provided that the following */
|
|
/* conditions are met: */
|
|
/* */
|
|
/* Redistributions of source code must retain the above copyright */
|
|
/* notice, this list of conditions and the following disclaimer. */
|
|
/* Redistributions in binary form must reproduce the above copyright */
|
|
/* notice, this list of conditions and the following disclaimer in */
|
|
/* the documentation and/or other materials provided with the distribution. */
|
|
/* */
|
|
/* Neither the name of Rexx Language Association nor the names */
|
|
/* of its contributors may be used to endorse or promote products */
|
|
/* derived from this software without specific prior written permission. */
|
|
/* */
|
|
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
|
|
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
|
|
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
|
|
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
|
|
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
|
|
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
|
|
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
|
|
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
|
|
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
|
|
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
|
|
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
|
/* */
|
|
/*----------------------------------------------------------------------------*/
|
|
/****************************************************************************/
|
|
/* Name: oodpbar.rex */
|
|
/* Type: Open Object Rexx Script using ooDialog */
|
|
/* Resource: oodpbar.rc */
|
|
/* */
|
|
/****************************************************************************/
|
|
|
|
-- Use the global .constDir for symbolic IDs
|
|
.application~useGlobalConstDir('O')
|
|
|
|
sd = locate()
|
|
|
|
myDialog = .MyDialogClass~new(sd"rc\oodpbar.rc")
|
|
if myDialog~initCode = 0 then do
|
|
rc = myDialog~execute("SHOWTOP")
|
|
end
|
|
|
|
/* Add program code here */
|
|
|
|
exit /* leave program */
|
|
|
|
|
|
::requires "ooDialog.cls" /* This file contains the ooDialog classes */
|
|
|
|
/* ---------------------------- Directives ---------------------------------*/
|
|
|
|
::class 'MyDialogClass' subclass RcDialog
|
|
|
|
::method init
|
|
forward class (super) continue /* call parent constructor */
|
|
initRet = Result
|
|
|
|
/* Connect dialog control items to class methods. Ok, Cancel, and Help are
|
|
* already connected by the super class init()
|
|
*/
|
|
|
|
/* Initial values that are assigned to the object attributes */
|
|
|
|
/* Add your initialization code here */
|
|
return initRet
|
|
|
|
|
|
::method initDialog
|
|
|
|
/* Initialize progress bar IDC_PBAR_A */
|
|
curPB = self~newProgressBar("IDC_PBAR_A")
|
|
if curPB \= .nil then do
|
|
curPB~setRange(0,100)
|
|
curPB~setStep(50)
|
|
curPB~setPos(10)
|
|
end
|
|
|
|
/* Initialize progress bar IDC_PBAR_B */
|
|
curPB = self~newProgressBar("IDC_PBAR_B")
|
|
if curPB \= .nil then do
|
|
curPB~setRange(0,100)
|
|
curPB~setStep(40)
|
|
curPB~setPos(20)
|
|
end
|
|
|
|
/* Initialize progress bar IDC_PBAR_C */
|
|
curPB = self~newProgressBar("IDC_PBAR_C")
|
|
if curPB \= .nil then do
|
|
curPB~setRange(0,100)
|
|
curPB~setStep(30)
|
|
curPB~setPos(30)
|
|
end
|
|
|
|
/* Initialize progress bar IDC_PBAR_D */
|
|
curPB = self~newProgressBar("IDC_PBAR_D")
|
|
if curPB \= .nil then do
|
|
curPB~setRange(0,100)
|
|
curPB~setStep(20)
|
|
curPB~setPos(40)
|
|
end
|
|
|
|
/* Initialize progress bar IDC_PBAR_E */
|
|
curPB = self~newProgressBar("IDC_PBAR_E")
|
|
if curPB \= .nil then do
|
|
curPB~setRange(0,100)
|
|
curPB~setStep(10)
|
|
curPB~setPos(50)
|
|
end
|
|
|
|
/* Othe initialization Code (e.g. fill list and combo boxes) */
|
|
return 0
|
|
|
|
|
|
::method defineDialog
|
|
|
|
if self~initCode = 0 then do
|
|
-- Additional dialog control items could be added here. e.g.
|
|
-- createEditInputGroup(), createDateTimePicker(), etc.. However, that is
|
|
-- rarely done with a RcDialog. It makes more sense to simply have all the
|
|
-- controls in the resource script file.
|
|
end
|
|
|
|
|
|
/* --------------------- event handler(s) ------------------------------------*/
|
|
|
|
-- Method 0k is automatically connected to the button CLICK event with the
|
|
-- resource ID of IDOK by the ooDialog framework. In the resource script
|
|
-- file: "rc\oodpbar.rc" the button with ID of IDOK is labeled 'step'
|
|
::method ok unguarded
|
|
/* step each progress bar by the step set with the setStep method */
|
|
curPB = self~newProgressBar("IDC_PBAR_A")
|
|
curPB~step
|
|
curPB = self~newProgressBar("IDC_PBAR_B")
|
|
curPB~step
|
|
curPB = self~newProgressBar("IDC_PBAR_C")
|
|
curPB~step
|
|
curPB = self~newProgressBar("IDC_PBAR_D")
|
|
curPB~step
|
|
curPB = self~newProgressBar("IDC_PBAR_E")
|
|
curPB~step
|
|
return 0
|
|
|
|
-- Method cancel is automatically connected to resource ID IDCANCEL by the
|
|
-- ooDialog framework.
|
|
::method cancel unguarded
|
|
/* Calling the superclass cancel will *always* close the dialog. If you want
|
|
* to over-ride that behavior, for example to ask the user if she is sure she
|
|
* wants to cancel, do not call the super class cancel first. Here, commented
|
|
* out, is one possible over-ride.
|
|
*/
|
|
|
|
/*
|
|
text = 'There are unsaved changes, are you'.endOfLine'sure you want to cancel?'
|
|
title = "Abort All Changes !"
|
|
ret = MessageDialog(text, self~hwnd, title, "YESNO", "WARNING", "DEFBUTTON2")
|
|
say 'ret' ret 'self~IDYES:' self~IDYES
|
|
if ret == self~IDYES then return self~cancel:super
|
|
else return 1
|
|
*/
|
|
|
|
return self~cancel:super
|
|
|
|
-- Method help() is automatically connected to resource ID IDHELP by the
|
|
-- ooDialog framework. The super class does nothing, you need to over-ride
|
|
-- this method to actually do anything.
|
|
::method help unguarded
|
|
|
|
text = "There is no help for oodpbar.rex"
|
|
title = "The ooDialog ProgressBar Example"
|
|
|
|
ret = MessageDialog(text, self~hwnd, title, "OK", "EXCLAMATION")
|
|
|
|
return 0
|
|
|