VistA-cprs/CPRS-Chart/fIconLegend.pas

228 lines
5.8 KiB
Plaintext

unit fIconLegend;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, dShared,
ComCtrls, StdCtrls, ExtCtrls, ImgList, mImgText, Menus, FAutoSz;
type
TIconLegendType = (ilLast, ilNotes, ilTemplates, ilReminders, ilConsults, ilSurgery);
TfrmIconLegend = class(TfrmAutoSz)
pcMain: TPageControl;
pnlBottom: TPanel;
Templates: TTabSheet;
Reminders: TTabSheet;
btnOK: TButton;
fraImgText1: TfraImgText;
fraImgText2: TfraImgText;
fraImgText3: TfraImgText;
fraImgText4: TfraImgText;
fraImgText5: TfraImgText;
fraImgText6: TfraImgText;
fraImgText7: TfraImgText;
fraImgText12: TfraImgText;
Panel1: TPanel;
fraImgText8: TfraImgText;
fraImgText10: TfraImgText;
fraImgText15: TfraImgText;
fraImgText16: TfraImgText;
fraImgText17: TfraImgText;
fraImgText13: TfraImgText;
fraImgText14: TfraImgText;
Panel2: TPanel;
fraImgText22: TfraImgText;
fraImgText20: TfraImgText;
fraImgText19: TfraImgText;
fraImgText18: TfraImgText;
fraImgText21: TfraImgText;
fraImgText11: TfraImgText;
fraImgText9: TfraImgText;
fraImgText23: TfraImgText;
fraImgText24: TfraImgText;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Notes: TTabSheet;
fraImgText25: TfraImgText;
fraImgText26: TfraImgText;
fraImgText27: TfraImgText;
fraImgText28: TfraImgText;
fraImgText29: TfraImgText;
fraImgText30: TfraImgText;
fraImgText31: TfraImgText;
fraImgText32: TfraImgText;
fraImgText33: TfraImgText;
fraImgText34: TfraImgText;
Consults: TTabSheet;
Panel3: TPanel;
fraImgText35: TfraImgText;
fraImgText36: TfraImgText;
fraImgText43: TfraImgText;
Panel4: TPanel;
Label5: TLabel;
fraImgText41: TfraImgText;
fraImgText37: TfraImgText;
fraImgText38: TfraImgText;
fraImgText39: TfraImgText;
fraImgText40: TfraImgText;
Label4: TLabel;
fraImgText44: TfraImgText;
Surgery: TTabSheet;
fraImgText42: TfraImgText;
fraImgText45: TfraImgText;
fraImgText46: TfraImgText;
fraImgText47: TfraImgText;
fraImgText48: TfraImgText;
fraImgText49: TfraImgText;
fraImgText50: TfraImgText;
fraImgText51: TfraImgText;
fraImgText52: TfraImgText;
fraImgText53: TfraImgText;
fraImgText54: TfraImgText;
fraImgText55: TfraImgText;
fraImgText56: TfraImgText;
fraImgText57: TfraImgText;
fraImgText58: TfraImgText;
fraImgText59: TfraImgText;
fraImgText60: TfraImgText;
fraImgText61: TfraImgText;
procedure btnOKClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure ShowTab(tb: TIconLegendType);
procedure SnapLabels;
public
class procedure SetFontSize( NewFontSize: integer);
end;
procedure ShowIconLegend(IconType: TIconLegendType; Restart: boolean = FALSE);
implementation
uses
fFrame, uConst, ORFn;
{$R *.DFM}
var
frmIconLegend: TfrmIconLegend = nil;
LastX, LastY: integer;
FirstSize: boolean = TRUE;
procedure ShowIconLegend(IconType: TIconLegendType; Restart: boolean = FALSE);
begin
if assigned(frmIconLegend) and Restart then
FreeAndNil(frmIconLegend);
if not assigned(frmIconLegend) then
begin
frmIconLegend := TfrmIconLegend.Create(Application);
frmIconLegend.Surgery.TabVisible := frmFrame.TabExists(CT_SURGERY);
end;
frmIconLegend.ShowTab(IconType);
TfrmIconLegend.SetFontSize( MainFontSize );
frmIconLegend.Show;
end;
procedure TfrmIconLegend.btnOKClick(Sender: TObject);
begin
Close;
end;
procedure TfrmIconLegend.ShowTab(tb: TIconLegendType);
begin
case tb of
ilTemplates: pcMain.ActivePage := Templates;
ilReminders: pcMain.ActivePage := Reminders;
ilNotes: pcMain.ActivePage := Notes;
ilConsults: pcMain.ActivePage := Consults;
ilSurgery: pcMain.ActivePage := Surgery;
end;
end;
procedure TfrmIconLegend.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmIconLegend.FormDestroy(Sender: TObject);
begin
LastX := Left;
LastY := Top;
frmIconLegend := nil;
end;
class procedure TfrmIconLegend.SetFontSize( NewFontSize: integer);
begin
if Assigned(frmIconLegend) then begin
if FirstSize or (frmIconLegend.Font.Size <> NewFontSize) then begin
ResizeFormToFont(frmIconLegend);
frmIconLegend.Font.Size := NewFontSize;
frmIconLegend.SnapLabels;
FirstSize := FALSE;
LastX := (Screen.Width - frmIconLegend.Width) div 2;
LastY := (Screen.Height - frmIconLegend.Height) div 2;
end;
frmIconLegend.Left := LastX;
frmIconLegend.Top := LastY;
end;
end;
procedure TfrmIconLegend.SnapLabels;
var
i: integer;
begin
for i := 0 to ComponentCount-1 do
if Components[i] is TfraImgText then
with TfraImgText(Components[i]).lblText do
if (AutoSize and WordWrap) then begin
{Snap width to fit. We turn autosize off and on to snap height, too.
If we don't tweak AutoSize, it tends to give the frame a vertical
scroll bar.}
AutoSize := False;
Width := Parent.Width - Left - ScrollBarWidth;
AutoSize := True;
end;
end;
procedure TfrmIconLegend.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if (Key = VK_TAB) then begin
if (ssCtrl in Shift) then begin
if not (ActiveControl is TCustomMemo) or not TMemo(ActiveControl).WantTabs then begin
pcMain.SelectNextPage( not (ssShift in Shift));
Key := 0;
end;
end;
end;
end;
end.