&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v7r11 GUI &ANALYZE-RESUME &Scoped-define WINDOW-NAME WINDOW-1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS WINDOW-1 /*------------------------------------------------------------------------ File: Description: Input Parameters: Output Parameters: Author: Created: 03/02/96 - 4:55 pm ------------------------------------------------------------------------*/ /* This .W file was created with the Progress UIB. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ******************** Preprocessor Definitions ******************** */ /* Name of first Frame and/or Browse (alphabetically) */ &Scoped-define FRAME-NAME FRAME-A /* Custom List Definitions */ &Scoped-define LIST-1 &Scoped-define LIST-2 &Scoped-define LIST-3 /* Definitions for FRAME FRAME-A */ &Scoped-define FIELDS-IN-QUERY-FRAME-A &Scoped-define ENABLED-FIELDS-IN-QUERY-FRAME-A /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR WINDOW-1 AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE VARIABLE WsDestination AS CHARACTER FORMAT "X(256)":U LABEL "Destination" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "File 1","File 2","Printer 1","Printer 2","Windows" SIZE 18 BY 1.03 NO-UNDO. DEFINE VARIABLE WsPrinter AS CHARACTER FORMAT "X(256)":U LABEL "Printer" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Canon","HP","HP 4M","HP 850C","none" SIZE 18 BY 1.03 NO-UNDO. DEFINE IMAGE WsPreview SIZE 8.89 BY 2.67. DEFINE VARIABLE WsCPI AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "10 CPI", 1, "15 CPI", 2 SIZE 12 BY 1.8 NO-UNDO. DEFINE VARIABLE WsLPI AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "6 LPI", 1, "8 LPI", 2 SIZE 12 BY 1.8 NO-UNDO. DEFINE VARIABLE WsMargin AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "No", 1, "Yes", 2 SIZE 12 BY 1.8 NO-UNDO. DEFINE VARIABLE WsOrientation AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Portrait", 1, "Landscape", 2 SIZE 12 BY 1.8 NO-UNDO. DEFINE VARIABLE WsPaperSize AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "11''", 1, "A4", 2, "12''", 3 SIZE 12 BY 2.4 NO-UNDO. DEFINE VARIABLE WsQueue AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Foreground", 1, "Background", 2, "Statistics", 3 SIZE 15 BY 2.4 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL SIZE 49 BY 7.6. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL SIZE 18 BY 3. /* ************************ Frame Definitions *********************** */ DEFINE FRAME FRAME-A WsMargin AT ROW 2.8 COL 4 NO-LABEL WsCPI AT ROW 2.8 COL 20 NO-LABEL WsLPI AT ROW 2.8 COL 38 NO-LABEL WsPaperSize AT ROW 6 COL 4 NO-LABEL WsOrientation AT ROW 6 COL 20 NO-LABEL WsPrinter AT ROW 9.6 COL 31 COLON-ALIGNED WsQueue AT ROW 9.8 COL 3 NO-LABEL WsDestination AT ROW 11.4 COL 31 COLON-ALIGNED "Layout" VIEW-AS TEXT SIZE 7 BY .67 AT ROW 1.2 COL 4 RECT-1 AT ROW 1.4 COL 2 "Margin:" VIEW-AS TEXT SIZE 13 BY .8 AT ROW 2 COL 3 "Font width:" VIEW-AS TEXT SIZE 13 BY .8 AT ROW 2 COL 19 "Line spacing:" VIEW-AS TEXT SIZE 13 BY .8 AT ROW 2 COL 35 "Paper size:" VIEW-AS TEXT SIZE 13 BY .8 AT ROW 5.2 COL 3 "Orientation:" VIEW-AS TEXT SIZE 13 BY .8 AT ROW 5.2 COL 19 WsPreview AT ROW 5.4 COL 37 "Queue" VIEW-AS TEXT SIZE 7 BY .67 AT ROW 9.2 COL 4 RECT-2 AT ROW 9.4 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 51 BY 12. /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW WINDOW-1 ASSIGN HIDDEN = YES TITLE = "Print setup" COLUMN = 12.33 ROW = 7.2 HEIGHT = 12 WIDTH = 51 MAX-HEIGHT = 12 MAX-WIDTH = 51 VIRTUAL-HEIGHT = 12 VIRTUAL-WIDTH = 51 RESIZE = yes SCROLL-BARS = yes STATUS-AREA = no BGCOLOR = ? FGCOLOR = ? KEEP-FRAME-Z-ORDER = yes THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. &ANALYZE-RESUME /* *************** Runtime Attributes and UIB Settings ************** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW WINDOW-1 VISIBLE,,RUN-PERSISTENT */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(WINDOW-1) THEN WINDOW-1:HIDDEN = no. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME WsCPI &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsCPI WINDOW-1 ON ENTRY OF WsCPI IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"10cpi.bmp,15cpi.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsCPI WINDOW-1 ON VALUE-CHANGED OF WsCPI IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"10cpi.bmp,15cpi.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME WsLPI &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsLPI WINDOW-1 ON ENTRY OF WsLPI IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"6lpi.bmp,8lpi.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsLPI WINDOW-1 ON VALUE-CHANGED OF WsLPI IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"6lpi.bmp,8lpi.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME WsMargin &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsMargin WINDOW-1 ON ENTRY OF WsMargin IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"nomargin.bmp,margin.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsMargin WINDOW-1 ON VALUE-CHANGED OF WsMargin IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"nomargin.bmp,margin.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME WsOrientation &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsOrientation WINDOW-1 ON ENTRY OF WsOrientation IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"portrait.bmp,landscap.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsOrientation WINDOW-1 ON VALUE-CHANGED OF WsOrientation IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"portrait.bmp,landscap.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME WsPaperSize &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsPaperSize WINDOW-1 ON ENTRY OF WsPaperSize IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"11inch.bmp,a4.bmp,12inch.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL WsPaperSize WINDOW-1 ON VALUE-CHANGED OF WsPaperSize IN FRAME FRAME-A DO: assign {&self-name}. run Reflect(input {&self-name},"11inch.bmp,a4.bmp,12inch.bmp"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK WINDOW-1 /* *************************** Main Block *************************** */ /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */ ASSIGN CURRENT-WINDOW = {&WINDOW-NAME} THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}. /* The CLOSE event can be used from inside or outside the procedure to */ /* terminate it. */ ON CLOSE OF THIS-PROCEDURE RUN disable_UI. /* These events will close the window and terminate the procedure. */ /* (NOTE: this will override any user-defined triggers previously */ /* defined on the window.) */ ON WINDOW-CLOSE OF {&WINDOW-NAME} DO: APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN NO-APPLY. END. ON ENDKEY, END-ERROR OF {&WINDOW-NAME} ANYWHERE DO: APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN NO-APPLY. END. /* Best default for GUI applications is... */ PAUSE 0 BEFORE-HIDE. /* Now enable the interface and wait for the exit condition. */ /* (NOTE: handle ERROR and END-KEY so cleanup code will always fire. */ MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: RUN enable_UI. IF NOT THIS-PROCEDURE:PERSISTENT THEN WAIT-FOR CLOSE OF THIS-PROCEDURE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI WINDOW-1 _DEFAULT-DISABLE PROCEDURE disable_UI : /* -------------------------------------------------------------------- Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. -------------------------------------------------------------------- */ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U THEN DELETE WIDGET WINDOW-1. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI WINDOW-1 _DEFAULT-ENABLE PROCEDURE enable_UI : /* -------------------------------------------------------------------- Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. -------------------------------------------------------------------- */ DISPLAY WsMargin WsCPI WsLPI WsPaperSize WsOrientation WsPrinter WsQueue WsDestination WITH FRAME FRAME-A IN WINDOW WINDOW-1. ENABLE RECT-1 WsMargin WsCPI WsLPI WsPreview WsPaperSize WsOrientation RECT-2 WsPrinter WsQueue WsDestination WITH FRAME FRAME-A IN WINDOW WINDOW-1. {&OPEN-BROWSERS-IN-QUERY-FRAME-A} VIEW WINDOW-1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE Reflect WINDOW-1 PROCEDURE Reflect : do with frame {&frame-name}: def input parameter v as int. def input parameter bmplist as char. def var bmpname as char. bmpname = "d:/source/work/pagelay/" + entry(v,bmplist). def var dummy as logical. dummy = WsPreview:load-image(bmpname). end. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE FRAME-NAME &UNDEFINE WINDOW-NAME