UNPKG

@simple-and-crude/multi-window

Version:

Magnetic adsorbable window for HTML Application (HTA)

268 lines (267 loc) 9.86 kB
declare var dialogArguments: [ id: number, PARENT_GLOBAL: typeof SCMultiWindow.GLOBAL, WIN: typeof window, name: string ] | undefined; declare function showModelessDialog(url: string, varArgIn?: any, options?: string): Window; declare var dialogWidth: string | undefined; declare var dialogHeight: string | undefined; declare var dialogLeft: string | undefined; declare var dialogTop: string | undefined; interface Window { SCMultiWindow: typeof SCMultiWindow; } declare function vbs_moveto(x: number, y: number): void; declare function vbs_resizeto(x: number, y: number): void; declare function getBorder(n: SCMultiWindow.XYPair): SCMultiWindow.XYPair; /**获取鼠标位置 */ declare function getMouse(mouseNow: SCMultiWindow.XYPair, x: number, y: number): void; declare var con: HTMLAreaElement; declare var htaname: HTMLBaseElement; declare var htano: HTMLBaseElement; declare namespace SCMultiWindow { /**************************************************************************\ |******************************* 初始化环境 *******************************| \**************************************************************************/ /**是否使用数字传递位置。如果您的屏幕分辨率大于四位数,请改为false */ export let GET_POSDATA_BY_NUMBER: boolean; export interface DialogConfigParam { /**分窗高度 */ dialogHeight?: string; /**分窗宽度 */ dialogWidth?: string; /**和屏幕左边的距离 */ dialogLeft?: string | "auto"; /**和屏幕上边的距离 */ dialogTop?: string | "auto"; /**是否没有边框 */ unadorned?: 0 | 1 | "yes" | "no"; /**是否居中 */ center?: 0 | 1 | "yes" | "no"; /**是否显示帮助按钮 */ help?: 0 | 1 | "yes" | "no"; /**是否可被改变大小 */ resizeable?: 0 | 1 | "yes" | "no"; /**是否显示状态栏 */ status?: 0 | 1 | "yes" | "no"; /**是否显示滚动条 */ scroll?: 0 | 1 | "yes" | "no" | "on" | "off"; /**打印或者打印预览时是否隐藏 */ dialogHide?: 0 | 1 | "yes" | "no" | "on" | "off"; /**边框样式 */ edge?: "raised" | "sunken"; } /**分窗配置类 */ export interface DialogConfig extends Required<DialogConfigParam> { /**返回配置字符串 */ getFeat(): string; } export class DialogConfig { constructor( /**分窗的配置 */ obj?: DialogConfigParam); } export interface SCMW_DialogElementParam { /**分窗id */ id?: number; /**分窗地址 */ uri?: string; /**分窗配置 */ config?: DialogConfigParam; } /**分窗元素类 */ export interface SCMW_DialogElement extends Required<SCMW_DialogElementParam> { config: DialogConfig; /**分窗名称 */ name: string; /**分窗window对象 */ window: Window | { closed: true; }; } export class SCMW_DialogElement { constructor( /**分窗的各属性 */ obj: SCMW_DialogElementParam); } /**XY值对类 */ export interface XYPair { /**X值 */ x: number; /**Y值 */ y: number; /**方便地输出当前的值 */ log(): string; } export class XYPair { constructor(x?: number, y?: number); } /**本地全局变量 */ export const GLOBAL: { /**屏幕信息 */ Screen: { /**信息版本 */ changed: number; /**屏幕大小 */ XYsiz: XYPair; /**任务栏信息 */ taskbar: { /**任务栏方向(横或纵) */ rule: XYPair; /**任务栏位置值 */ value: number; }; }; /**磁力吸附范围 */ magRange: number; /**各分窗尺寸 */ windowSiz: XYPair[]; /**新建分窗尺寸XY值对 */ newSiz(id: number): void; /**各分窗位置 */ windowPos: XYPair[]; /**分窗位置版本 */ windowChanged: number[]; /**分窗位置是否已被更新 */ alreadyChanged: boolean[]; /**各分窗window对象 */ windowList: Window[]; /**各分窗名称 */ windowName: string[]; }; /**祖先窗口的全局变量 */ export const PARENT_GLOBAL: { /**屏幕信息 */ Screen: { /**信息版本 */ changed: number; /**屏幕大小 */ XYsiz: XYPair; /**任务栏信息 */ taskbar: { /**任务栏方向(横或纵) */ rule: XYPair; /**任务栏位置值 */ value: number; }; }; /**磁力吸附范围 */ magRange: number; /**各分窗尺寸 */ windowSiz: XYPair[]; /**新建分窗尺寸XY值对 */ newSiz(id: number): void; /**各分窗位置 */ windowPos: XYPair[]; /**分窗位置版本 */ windowChanged: number[]; /**分窗位置是否已被更新 */ alreadyChanged: boolean[]; /**各分窗window对象 */ windowList: Window[]; /**各分窗名称 */ windowName: string[]; }; /**父窗口 */ export const PARENT_WINDOW: Window; /**祖先窗口 */ export const ANCESTOR_WINDOW: Window; /**************************************************************************\ |***************************** 用户配置性函数 *****************************| \**************************************************************************/ /**初始化分窗 */ export function initDialog( /**分窗的属性 */ ...dialogs: SCMW_DialogElementParam[]): void; /**加载完向主窗口报告 */ export const upLoaded: () => void; /**初始化 */ export function initialize(): void; /**重新获取屏幕各项参数 */ export function regetScreen(): void; /**获取或重设磁力范围 */ export function magneticRange( /**新的磁力范围(px),为空则不操作 */ n?: number): number; /**获取或重设磁力开启状态 */ export function magneticStatus( /**是否开启磁力。为空则不操作 */ n?: boolean): boolean; /**获取窗口id */ export function windowID(): number; /**获取或重设窗口名称 */ export function windowName( /**新名称,为空则不操作 */ n?: string): string; /**需要跟随当前窗口的分窗列表 */ export const dragList: {}; /**************************************************************************\ |*************************** 数据拷贝及上传函数 ***************************| \**************************************************************************/ /**复制窗体位置信息 */ export function copyPos( /**窗体id */ id: number, /**窗体位置信息 */ data: string | false): void; /**拷贝祖先全局变量到本地 */ export function copyGlobal(): void; /**鼠标是否按下 */ export let bolMove: boolean; /**传递窗口位置信息 */ export function update(): string | false; /**开启自动检测上传 */ export function updateStart( /**两次上传间隔时间(ms) */ n: number): void; /**上传窗口尺寸 */ export function updateSiz(): void; /**************************************************************************\ |*************************** 窗口尺寸及位置相关 ***************************| \**************************************************************************/ /**窗口尺寸 */ export const XYsiz: XYPair; /**窗口位置 */ export const XYpos: XYPair; /**获取窗口尺寸 */ export function getSiz(): XYPair; /**获取窗口位置 */ export function getPos(): XYPair; /**设置窗口尺寸 */ export const setSiz: (/**窗口宽度 */ x: number, /**窗口高度 */ y: number) => void; /**设置窗口位置 */ export const setPos: (/**和屏幕左边的距离 */ x: number, /**和屏幕上边的距离 */ y: number) => void; /**************************************************************************\ |****************************** 窗口吸附相关 ******************************| \**************************************************************************/ /**可被吸附的东西的名字 */ type magObjName = number | "screen" | "taskbar"; /**已经吸附上的分窗列表 */ export let engaList: { [name in magObjName]?: true; }; /**移动窗口 */ export function moveWindow( /**要移动到的横坐标 */ x: number, /**要移动到的纵坐标 */ y: number): void; /**列出窗口当前正在吸附的分窗 */ export function engaCalc(): void; /**点击时鼠标与窗口左上方的距离 */ export const mouseOffset: XYPair; /**事件函数对象 */ export const event: { /**鼠标点下 */ down(event: MouseEvent): void; /**鼠标移动 */ move(event: MouseEvent): void; /**鼠标抬起 */ up(): void; /**全部加载完成 */ allLoad: () => void; }; export {}; } declare var SCMW_DialogElement: typeof SCMultiWindow.SCMW_DialogElement;