open-insight/LSL2/STPROC/TEST_PRINTSETUP.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

216 lines
6.3 KiB
Plaintext

function Test_PrintSetup(Instruction, p1, p2, p3)
#pragma precomp SRP_PreCompiler
******************************************************************************
*
* This program is proprietary and is not to be used by or disclosed
* to others, nor is it to be copied without written permission from
* Revelation Technologies, Inc.
*
* Product : OpenInsight Works
*
* History : (date, initials, notes)
* 01/23/96 cp Updating for Hoffa/3.1
* 02/22/96 cp Added help
*
******************************************************************************
declare function Get_Property, SRP_Get_Printers, Test_PrintSetup
declare subroutine Set_Property, SendMessage, Dialog_Box, Start_Window
declare subroutine WritePrivateProfileString, DefPrtr, SetupP
declare subroutine GetPrivateProfileSection, GetPrivateProfileString
declare subroutine Utility
$insert Logical
$insert PrintSetup_Equates
equ DLG_NAME$ to "TEST_PRINTSETUP"
equ INI_FILE$ to "win.ini": \00\
equ PRN_SECTION$ to "devices": \00\
equ DFT_SECTION$ to "windows": \00\
equ DFT_KEY$ to "device" : \00\
equ WM_WININICHANGE$ to 26
equ HWND_BROADCAST$ to 65535
equ MAX_SIZE$ to 4096
if assigned(Instruction) then
if len(Instruction) and num(Instruction) else
Instruction = 1
end
end else
Instruction = 1
end
Ret = ""
if Instruction then
on Instruction gosub Setup, Get, Set, Create, SetDefault, Options, Help, SelChange, Setup
end
return Ret
*******************************
* open the printer setup window
*******************************
Setup:
Parent = @window
Exists = Get_Property(Parent, "HANDLE")
if len(Parent) and Exists then
Frame = Get_Property(Parent, "MDIFRAME")
if len(Frame) then
Parent = Frame
end
Dialog_Box(DLG_NAME$, Parent)
end else
Start_Window(DLG_NAME$)
end
return
**************************
* get the list of printers
**************************
Get:
* get list of installed printer types
Models = str(\00\, MAX_SIZE$)
GetPrivateProfileSection(PRN_SECTION$, 0, \00\, Models, len(Models), INI_FILE$)
convert \0020\ to \2000\ in Models
Models = trimb(Models)
convert \0020\ to \20FE\ in Models
* get the list of installed printers
cModels = count(Models, @fm) + (Models # "")
Printers = ""
for iModel = 1 to cModels
Printer = str(\00\, MAX_SIZE$)
GetPrivateProfileString(PRN_SECTION$, Models<iModel>: \00\, \00\, Printer, len(Printer), INI_FILE$)
Printer = Printer [1,\00\]
cPrinters = count(Printer, ",")
for iPrinter = 1 to cPrinters
Printers<-1> = Models<iModel>: ",": field(Printer, ",", 1): ",": field(Printer, ",", iPrinter + 1)
next iPrinter
next iModel
* get the default printer
Default = str(\00\, MAX_SIZE$)
GetPrivateProfileString(DFT_SECTION$, DFT_KEY$, \00\, Default, len(Default), INI_FILE$)
Default = Default [1, \00\]
*debug
* dPrinters = SRP_Get_Printers('Local')
* cPrinters = SRP_Get_Printers('Connect')
* bPrinters = SRP_Get_Printers('Connect')
* aPrinters = SRP_Get_Printers('Connect')
*
* List = ''
* Current = ''
* Printers = dPrinters:@FM:cPrinters:@FM:bPrinters:@FM:aPrinters
Ret = count(Printers, @fm) + (Printers # "")
* Default = SRP_Get_Printers('Default')
transfer Models to p1
transfer Printers to p2
transfer Default to p3
return
*************************
* set the default printer
*************************
Set:
if assigned(p1) then
Current = p1
WritePrivateProfileString(DFT_SECTION$, DFT_KEY$, Current: \00\, INI_FILE$)
SendMessage(HWND_BROADCAST$, WM_WININICHANGE$, 0, 0)
Ret = TRUE$
end else
Ret = FALSE$
end
return
*********************
* window create event
*********************
Create:
* get list of printers and the current (ie. default) printer
dPrinters = SRP_Get_Printers('Local')
cPrinters = SRP_Get_Printers('Connect')
List = ''
Current = ''
//cPrinters = PrintSetup(PRN_GET$, "", List, Current)
//Printers = List
Printers = cPrinters
for i = 1 to cPrinters
List<i> = field(List<i>, ",", 1): " on ": field(List<i>, ",", 3)
next i
* highlight current printer in printer list
if len(Current) then
locate Current in Printers using @fm setting Pos then
Current = List<Pos>
end else
Pos = ""
end
end else
Pos = ""
end
Ctrls = @window: ".LB_PRINTER": @rm: @window: ".LB_PRINTER": @rm: @window: ".ST_DEFAULT": @rm: @window: ".CB_OPTIONS": @rm: @window : @rm: @window
Props = "LIST" : @rm: "SELPOS" : @rm: "TEXT" : @rm: "ENABLED" : @rm: "@PRINTERS": @rm: "VISIBLE"
Vals = List : @rm: Pos : @rm: Current : @rm: (Pos > 0) : @rm: Printers : @rm: TRUE$
Set_Property(Ctrls, Props, Vals)
return
****************************
* user chose default printer
****************************
SetDefault:
Ctrls = @window: ".LB_PRINTER": @rm: @window: ".LB_PRINTER": @rm: @window
Props = "TEXT" : @rm: "SELPOS" : @rm: "@PRINTERS"
Vals = Get_Property(Ctrls, Props)
Current = field(Vals, @rm, 1)
Pos = field(Vals, @rm, 2)
Printers = field(Vals, @rm, 3)
if PrintSetup(PRN_SET$, Printers<Pos>) then
Set_Property(@window: ".ST_DEFAULT", "TEXT", Current)
Set_Property(@window: ".CB_OPTIONS", "ENABLED", TRUE$)
end
return
*******************************
* printer configuration options
*******************************
Options:
hWnd = Get_Property(@window, "HANDLE")
Set_Property("SYSTEM", "BLOCK_EVENTS", TRUE$)
SetupP(hWnd)
Set_Property("SYSTEM", "BLOCK_EVENTS", FALSE$)
return
***************************
* call help for print setup
***************************
Help:
Utility("RUNHELP", "OINSIGHT.HLP", @window: @fm: 1: @fm: 9010)
return
********************************
* user changes highlight in list
********************************
SelChange:
Ctrls = @window: ".LB_PRINTER": @rm: @window: ".ST_DEFAULT"
Props = "TEXT" : @rm: "TEXT"
Vals = Get_Property(Ctrls, Props)
Printer = field(Vals, @rm, 1)
Current = field(Vals, @rm, 2)
Set_Property(@window: ".CB_OPTIONS", "ENABLED", Printer = Current)
return