Ignore:
Timestamp:
Jan 5, 2023, 4:26:54 AM (3 years ago)
Author:
Alex Taylor
Message:

Use system window-text font for UI, with dynamic scaling.
Fix command-line parsing when multiple parameters specified.
Double-clicking on a PrinterPak opens model view.

Location:
trunk/gui/printer/manager
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/printer/manager/PRINTOOL.VRP

    r91 r94  
    66RunParameters: /D
    77RunDirectory:
    8 VRXWindow: __VREMainWindow,1,964,4288,6697,8046
    9 VRXWindow: __VRESectionListWindow,1,1084,16044,4204,4059
    10 VRXWindow: __VREToolsWindow,1,1096,14309,5472,1667
    11 VRXWindow: __VREWindListWindow,1,5312,16044,3505,4059
     8VRXWindow: __VREMainWindow,1,1012,4288,6697,8046
     9VRXWindow: __VRESectionListWindow,1,1132,16044,4204,4059
     10VRXWindow: __VREToolsWindow,1,1144,14309,5475,1665
     11VRXWindow: __VREWindListWindow,1,5360,16044,3505,4059
    1212UserFile: 1
    1313UserWindow: WN_MAIN,1
    1414UserWindow: SW_WIZARD,1
    1515UserWindow: SW_PRINTERS,1
    16 UserWindow: SW_PRINTERPAKS,1
    1716UserWindow: SW_DEVICES,1
    1817UserWindow: SW_PORTS,1
    19 UserWindow: SW_ABOUT,1
    20 UserWindow: SW_MODELS,1
    21 UserWindow: SW_IMPORT,1
    22 UserWindow: SW_DEVICE_ADD,1
  • trunk/gui/printer/manager/PRINTOOL.VRX

    r91 r94  
    1717            argOff = 1
    1818        end
     19        InitArgs.0 = argCount
     20        if( argCount > 0 )then do i = 1 to argCount
     21            InitArgs.i = arg( i + argOff )
     22        end
    1923    end; else do
    2024        call VROptions 'ImplicitNames'
    2125        call VROptions 'NoEchoQuit'
    22     end
    23     InitArgs.0 = argCount
    24     if( argCount > 0 )then do i = 1 to argCount
    25         InitArgs.i = arg( i + argOff )
     26        argCount = _ParseParams( arg(1) )
    2627    end
    2728    drop calledAs argCount argOff
     
    9495*/
    9596return
     97/*:VRX         _ParseParams
     98*/
     99_ParseParams: PROCEDURE EXPOSE InitArgs.
     100  /* Parse program parameters when they are provided as a single string,
     101   * including handling quotes.
     102   */
     103  parse arg thisArgs
     104
     105  InitArgs. = ''
     106  InitArgs.0 = 0
     107
     108  do while thisargs <> ''
     109
     110    parse value strip( thisArgs, "B" ) with curArg thisArgs
     111
     112    parse var curArg tc1 +1 .
     113    if tc1 = '"' | tc1 = "'" then
     114      parse value curArg thisArgs with (tc1) curArg (tc1) ThisArgs
     115
     116   i = InitArgs.0 + 1
     117   InitArgs.i = strip( curArg )
     118   InitArgs.0 = i
     119
     120  end /* do while thisArgs <> '' */
     121
     122RETURN InitArgs.0
     123
    96124/*:VRX         CheckPrograms
    97125*/
     
    192220        CALL VRMethod 'CN_PRINTERPAKS', 'SetRecordAttr', _record, 'Selected', 1
    193221        CALL VRMethod 'MN_PRINTERPAK', 'Popup'
     222    END
     223RETURN
     224
     225/*:VRX         CN_PRINTERPAKS_DoubleClick
     226*/
     227CN_PRINTERPAKS_DoubleClick:
     228    _record = VRInfo("Record")
     229    IF _record <> '' THEN DO
     230        CALL VRLoadSecondary 'SW_MODELS', 'W'
    194231    END
    195232RETURN
     
    486523
    487524RETURN _count
     525
     526/*:VRX         GetScalingFactor
     527*/
     528/* Return the UI scaling factor based on the difference between the specified
     529 * font size and the design-default font size.
     530 */
     531GetScalingFactor: PROCEDURE EXPOSE globals.
     532    PARSE ARG newSize, orgSize
     533
     534    IF orgSize == '' THEN
     535        orgSize = globals.!defaultSize
     536
     537    IF newSize < globals.!defaultSize THEN
     538        newSize = globals.!defaultSize
     539
     540    scaleFactor = newSize / orgSize
     541
     542RETURN scaleFactor
    488543
    489544/*:VRX         GetShippedDrivers
     
    873928
    874929    window = VRWindow()
     930
     931    IF globals.!windowText <> '' THEN DO
     932        CALL VRSet window, 'Font', globals.!windowText
     933    END
     934
    875935    call VRMethod window, "CenterWindow"
    876936    call VRMethod window, "Activate"
     
    911971LoadSettings: PROCEDURE EXPOSE globals.
    912972
    913     globals.!version = '0.86'
    914     globals.!copyright = '2013-2020'
     973    globals.!version = '0.87'
     974    globals.!copyright = '2013-2023'
     975
     976    /* Determine UI font.
     977     */
     978    globals.!defaultSize = 9
     979    PARSE VALUE VRGetIni('PM_SystemFonts', 'WindowText') WITH globals.!windowText '00'x .
    915980
    916981    me = VRGet('Application', 'Program')
     
    12941359
    12951360RETURN ok
     1361
     1362/*:VRX         ParseFontSize
     1363*/
     1364ParseFontSize: PROCEDURE EXPOSE globals.
     1365    PARSE ARG font
     1366    IF font == '' | font == '<default>' THEN
     1367        RETURN globals.!defaultSize
     1368
     1369    PARSE VAR font _pts'.'.
     1370    IF _pts < globals.!defaultSize THEN
     1371        _pts = globals.!defaultSize
     1372
     1373RETURN _pts
    12961374
    12971375/*:VRX         PB_ABOUT_OK_Click
     
    22032281RETURN
    22042282
     2283/*:VRX         RescaleObject
     2284*/
     2285RescaleObject: PROCEDURE
     2286    PARSE ARG object, factor, move
     2287
     2288    x = VRGet( object, 'Left')
     2289    y = VRGet( object, 'Top')
     2290    w = VRGet( object, 'Width')
     2291    h = VRGet( object, 'Height')
     2292    nx = TRUNC( x * factor )
     2293    ny = TRUNC( y * factor  )
     2294    nw = TRUNC( w * factor )
     2295    nh = TRUNC( h * factor  )
     2296
     2297    /* SAY object ': ('||x','y','w','h') --> ('nx','ny','nw','nh')' */
     2298
     2299    IF move <> 0 THEN DO
     2300        ok = VRSet( object, 'Left', nx )
     2301        ok = VRSet( object, 'Top', ny )
     2302    END
     2303    ok = VRSet( object, 'Width', nw )
     2304    ok = VRSet( object, 'Height', nh )
     2305
     2306RETURN
     2307
    22052308/*:VRX         SetDriverList
    22062309*/
     
    24072510
    24082511    window = VRInfo( "Object" )
     2512    IF globals.!windowText <> '' THEN DO
     2513        CALL VRSet window, 'Font', globals.!windowText
     2514        CALL VRSet 'DT_PRODUCT', 'Font', globals.!windowText || ' Bold'
     2515        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2516        CALL RescaleObject window, factor, 0
     2517        CALL RescaleObject 'Pict_Logo', factor
     2518        CALL RescaleObject 'DT_PRODUCT', factor
     2519        CALL RescaleObject 'DT_VERSION', factor
     2520        CALL RescaleObject 'GB_ABOUT', factor
     2521        CALL VRSet 'GB_ABOUT', 'Height', 30
     2522        CALL RescaleObject 'DT_COPYRIGHT', factor
     2523        CALL RescaleObject 'MLE_LICENSES', factor
     2524        CALL RescaleObject 'PB_ABOUT_OK', factor
     2525    END
     2526
    24092527    if( \VRIsChildOf( window, "Notebook" ) ) then do
    24102528        call VRMethod window, "CenterWindow"
     
    24572575
    24582576    window = VRInfo( "Object" )
     2577
     2578    IF globals.!windowText <> '' THEN DO
     2579        CALL VRSet window, 'Font', globals.!windowText
     2580        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2581        CALL RescaleObject window, factor, 0
     2582        CALL RescaleObject 'RB_DEVICE_SHIPPED', factor
     2583        CALL RescaleObject 'RB_DEVICE_3RDPARTY', factor
     2584        CALL RescaleObject 'DDCB_DEVICE_3RDPARTY', factor
     2585        CALL RescaleObject 'PB_DEVICE_OTHER', factor
     2586        CALL RescaleObject 'GB_DEVICE_LIST', factor
     2587        CALL RescaleObject 'CN_DEVICE_LIST', factor
     2588        CALL RescaleObject 'PB_DEVICE_INSTALL', factor
     2589        CALL RescaleObject 'PB_DEVICE_CANCEL', factor
     2590        CALL RescaleObject 'PB_DEVICE_REFRESH', factor
     2591    END
     2592
    24592593    CALL VRSet window, 'Pointer', 'WAIT'
    24602594
     
    25392673
    25402674    window = VRInfo( "Object" )
     2675
     2676    IF globals.!windowText <> '' THEN DO
     2677        CALL VRSet window, 'Font', globals.!windowText
     2678        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2679        CALL RescaleObject window, factor, 0
     2680        CALL RescaleObject 'PB_DEVICE_ADD', factor
     2681        CALL RescaleObject 'PB_DEVICE_REMOVE', factor
     2682    END
     2683
    25412684    if( \VRIsChildOf( window, "TabbedDialog" ) ) then do
    25422685        call VRMethod window, "CenterWindow"
     
    26312774
    26322775    window = VRInfo( "Object" )
     2776
     2777    IF globals.!windowText <> '' THEN DO
     2778        CALL VRSet window, 'Font', globals.!windowText
     2779        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2780        CALL RescaleObject window, factor, 0
     2781        CALL RescaleObject 'DT_IMPORT', factor
     2782        CALL RescaleObject 'RB_IMPORTLEGACY', factor
     2783        CALL RescaleObject 'DDCB_IMPORTDRV', factor
     2784        CALL RescaleObject 'RB_IMPORTCUPS', factor
     2785        CALL RescaleObject 'PB_IMPORTOK', factor
     2786        CALL RescaleObject 'PB_IMPORTCANCEL', factor
     2787    END
     2788
    26332789    if( \VRIsChildOf( window, "Notebook" ) ) then do
    26342790        call VRMethod window, "CenterWindow"
     
    26842840
    26852841    window = VRInfo( "Object" )
     2842    IF globals.!windowText <> '' THEN DO
     2843        CALL VRSet window, 'Font', globals.!windowText
     2844        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2845        CALL RescaleObject 'DT_MODELS', factor
     2846        CALL RescaleObject 'LB_MODELS', factor
     2847        CALL RescaleObject 'PB_MODELS_CLOSE', factor
     2848        CALL RescaleObject window, factor, 0
     2849    END
     2850
    26862851    if( \VRIsChildOf( window, "Notebook" ) ) then do
    26872852        call VRMethod window, "CenterWindow"
     
    27472912
    27482913    window = VRInfo( "Object" )
     2914    IF globals.!windowText <> '' THEN DO
     2915        CALL VRSet window, 'Font', globals.!windowText
     2916        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2917        CALL RescaleObject window, factor, 0
     2918        CALL RescaleObject 'DT_ADDPORT', factor
     2919        CALL RescaleObject 'CN_ADDPORT', factor
     2920        CALL RescaleObject 'DT_OTHERPORT', factor
     2921        CALL RescaleObject 'PB_OTHERPORT', factor
     2922        CALL RescaleObject 'PB_ADDPORT_OK', factor
     2923        CALL RescaleObject 'PB_ADDPORT_CANCEL', factor
     2924    END
    27492925    if( \VRIsChildOf( window, "Notebook" ) ) then do
    27502926        call VRMethod window, "CenterWindow"
     
    27932969
    27942970    window = VRInfo( "Object" )
     2971
     2972    IF globals.!windowText <> '' THEN DO
     2973        CALL VRSet window, 'Font', globals.!windowText
     2974        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     2975        CALL RescaleObject window, factor, 0
     2976        CALL RescaleObject 'PB_PORT_ADD', factor
     2977        CALL RescaleObject 'PB_PORT_DELETE', factor
     2978        CALL RescaleObject 'PB_PORT_EDIT', factor
     2979    END
     2980
    27952981    if( \VRIsChildOf( window, "TabbedDialog" ) ) then do
    27962982        call VRMethod window, "CenterWindow"
     
    28503036
    28513037    window = VRInfo( "Object" )
     3038    IF globals.!windowText <> '' THEN DO
     3039        CALL VRSet window, 'Font', globals.!windowText
     3040        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     3041        CALL RescaleObject 'DT_PRINTERPAKS', factor
     3042        CALL RescaleObject 'CN_PRINTERPAKS', factor
     3043        CALL RescaleObject 'PB_PPCLOSE', factor
     3044        CALL RescaleObject 'PB_PPUPDATE', factor
     3045        CALL RescaleObject window, factor, 0
     3046    END
    28523047    if( \VRIsChildOf( window, "TabbedDialog" ) ) then do
    28533048        call VRMethod window, "CenterWindow"
     
    28803075*/
    28813076SW_PRINTERS_Init: PROCEDURE EXPOSE globals.
     3077
     3078    window = VRInfo( "Object" )
    28823079
    28833080    CALL NLSSetText 'CN_PRINTERS',     'Caption', 103
     
    29073104    CALL RefreshPrinters
    29083105
    2909     window = VRInfo( "Object" )
     3106    IF globals.!windowText <> '' THEN DO
     3107        CALL VRSet window, 'Visible', 0
     3108        CALL VRSet window, 'Font', globals.!windowText
     3109        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     3110
     3111        /* The SimpleDialog layout combined with the notebook page doesn't play
     3112         * very nicely with our own dynamic rescaling, so we have to manually
     3113         * reposition various things.  (This is only necessary for this
     3114         * particular notebook page because it starts out as visible on launch.)
     3115         */
     3116        btnBot = VRGet('PB_PRINTER_ADD', 'Top') + VRGet('PB_PRINTER_ADD', 'Height')
     3117        CALL RescaleObject 'PB_PRINTER_ADD', factor
     3118        CALL RescaleObject 'PB_PRINTER_DEL', factor
     3119        CALL RescaleObject 'PB_PRINTER_OPEN', factor
     3120        CALL RescaleObject 'PB_PRINTER_EDIT', factor
     3121        btnTop = btnBot - VRGet('PB_PRINTER_ADD', 'Height')
     3122        CALL VRSet 'PB_PRINTER_ADD', 'Top', btnTop
     3123        CALL VRSet 'PB_PRINTER_DEL', 'Top', btnTop
     3124        CALL VRSet 'PB_PRINTER_OPEN', 'Top', btnTop
     3125        CALL VRSet 'PB_PRINTER_EDIT', 'Top', btnTop
     3126        cnrBot = btnTop - 106
     3127        CALL VRSet 'CN_PRINTERS', 'Height', cnrBot - VRGet('CN_PRINTERS', 'Top')
     3128        CALL VRSet window, 'Visible', 1
     3129    END
     3130
    29103131    if( \VRIsChildOf( window, "TabbedDialog" ) ) then do
    29113132        call VRMethod window, "CenterWindow"
     
    29153136
    29163137    CALL VRSet window, 'UserData', 'CN_PRINTERS'
     3138
    29173139    drop window
    29183140/*
     
    29223144
    29233145RETURN
    2924 
    2925 /*:VRX         SW_PRINTERS_Resize
    2926 */
    2927 SW_PRINTERS_Resize:
    2928 
    2929 return
    29303146
    29313147/*:VRX         SW_WIZARD_Close
     
    29773193    IF globals.!wizard THEN CALL VRSet 'RB_ADVANCED', 'Visible', 1
    29783194    window = VRInfo( "Object" )
     3195
     3196    IF globals.!windowText <> '' THEN DO
     3197        CALL VRSet window, 'Font', globals.!windowText
     3198        factor = GetScalingFactor( ParseFontSize( globals.!windowText ))
     3199        CALL RescaleObject window, factor, 0
     3200        CALL RescaleObject 'DT_WIZARD', factor
     3201        CALL RescaleObject 'RB_CREATE_CUPS', factor
     3202        CALL RescaleObject 'RB_CREATE_LEGACY', factor
     3203        CALL RescaleObject 'GB_LEGACY', factor
     3204        CALL RescaleObject 'RB_CREATE_STANDARD', factor
     3205        CALL RescaleObject 'RB_CREATE_LAN', factor
     3206        CALL RescaleObject 'RB_ADVANCED', factor
     3207        CALL RescaleObject 'PB_WIZARD_NEXT', factor
     3208        CALL RescaleObject 'PB_WIZARD_CANCEL', factor
     3209        CALL RescaleObject 'PB_WIZARD_HELP', factor
     3210    END
     3211
    29793212    if( \VRIsChildOf( window, "Notebook" ) ) then do
    29803213        call VRMethod window, "CenterWindow"
     
    30213254    END
    30223255*/
     3256
    30233257RETURN
    30243258
Note: See TracChangeset for help on using the changeset viewer.