summaryrefslogtreecommitdiff
path: root/packages/morphunits/src/muihelper.pas
diff options
context:
space:
mode:
Diffstat (limited to 'packages/morphunits/src/muihelper.pas')
-rw-r--r--packages/morphunits/src/muihelper.pas268
1 files changed, 268 insertions, 0 deletions
diff --git a/packages/morphunits/src/muihelper.pas b/packages/morphunits/src/muihelper.pas
new file mode 100644
index 0000000000..8c85f567e5
--- /dev/null
+++ b/packages/morphunits/src/muihelper.pas
@@ -0,0 +1,268 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2005 Karoly Balogh
+
+ MUI helper functions for MorphOS/PowerPC
+
+ Based on work of Nils Sjoholm member of the Amiga RTL
+ development team.
+
+ MorphOS port was done on a free Pegasos II/G4 machine
+ provided by Genesi S.a.r.l. <www.genesi.lu>
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+unit muihelper;
+
+interface
+
+uses intuition, mui, amigados, utility;
+
+
+const
+ NoFrame = MUIV_Frame_None;
+ ButtonFrame = MUIV_Frame_Button;
+ ImageButtonFrame = MUIV_Frame_ImageButton;
+ TextFrame = MUIV_Frame_Text;
+ StringFrame = MUIV_Frame_String;
+ ReadListFrame = MUIV_Frame_ReadList;
+ InputListFrame = MUIV_Frame_InputList;
+ PropFrame = MUIV_Frame_Prop;
+ SliderFrame = MUIV_Frame_Slider;
+ GaugeFrame = MUIV_Frame_Gauge;
+ VirtualFrame = MUIV_Frame_Virtual;
+ GroupFrame = MUIV_Frame_Group;
+
+const
+ Child = MUIA_Group_Child;
+ SubWindow = MUIA_Application_Window;
+ WindowContents = MUIA_Window_RootObject;
+
+
+// Creates a MUI application
+function MH_Application(tags: array of LongWord): pObject_;
+function MH_Application(var app; tags: array of LongWord): pObject_;
+
+// Creates a MUI window
+function MH_Window(tags: array of LongWord): pObject_;
+function MH_Window(var win; tags: array of LongWord): pObject_;
+
+// Creates a MUI button
+function MH_MakeButton(blabel: pchar): pObject_;
+function MH_MakeButton(var button; blabel: pchar): pObject_;
+
+// Creates a MUI HBar
+function MH_MakeHBar(space: longword): pObject_;
+function MH_MakeHBar(var hbar; space: longword): pObject_;
+
+// Creates MUI V/HGroup
+function MH_VGroup(tags: array of LongWord): pObject_;
+function MH_VGroup(frame: longword; tags: array of LongWord): pObject_;
+function MH_VGroup(title: PChar; tags: array of LongWord): pObject_;
+function MH_HGroup(tags: array of LongWord): pObject_;
+function MH_HGroup(frame: longword; tags: array of LongWord): pObject_;
+function MH_HGroup(title: PChar; tags: array of LongWord): pObject_;
+
+// Creates MUI Col/RowGroup
+function MH_ColGroup(cols: longword; tags: array of LongWord): pObject_;
+function MH_ColGroup(cols: longword; frame: longword; tags: array of LongWord): pObject_;
+function MH_ColGroup(cols: longword; title: PChar; tags: array of LongWord): pObject_;
+function MH_RowGroup(rows: longword; tags: array of LongWord): pObject_;
+function MH_RowGroup(rows: longword; frame: longword; tags: array of LongWord): pObject_;
+function MH_RowGroup(rows: longword; title: PChar; tags: array of LongWord): pObject_;
+
+
+// Creates a MUI Text area
+function MH_Text(contents: PChar): pObject_;
+function MH_Text(contents: PChar; tags: array of LongWord): pObject_;
+function MH_Text(var text_; contents: PChar): pObject_;
+function MH_Text(var text_; contents: PChar; tags: array of LongWord): pObject_;
+
+
+implementation
+
+
+// Creates a MUI application
+// ************************************************************************
+function MH_Application(tags: array of LongWord): pObject_;
+begin
+ MH_Application:=MUI_NewObject(MUIC_Application, tags);
+end;
+
+function MH_Application(var app; tags: array of LongWord): pObject_;
+begin
+ pObject_(app):=MUI_NewObject(MUIC_Application, tags);
+ MH_Application:=pObject_(app);
+end;
+
+
+// Creates a MUI window
+// ************************************************************************
+function MH_Window(tags: array of LongWord): pObject_;
+begin
+ MH_Window:=MUI_NewObject(MUIC_Window, tags);
+end;
+
+function MH_Window(var win; tags: array of LongWord): pObject_;
+begin
+ pObject_(win):=MUI_NewObject(MUIC_Window, tags);
+ MH_Window:=pObject_(win);
+end;
+
+
+// Creates a MUI button
+// ************************************************************************
+function MH_MakeButton(blabel: pchar): pObject_;
+begin
+ MH_MakeButton:=MUI_MakeObject(MUIO_Button, [DWord(blabel)]);
+end;
+
+function MH_MakeButton(var button; blabel: pchar): pObject_;
+begin
+ pObject_(button):=MUI_MakeObject(MUIO_Button, [DWord(blabel)]);
+ MH_MakeButton:=pObject_(button);
+end;
+
+
+// Creates a MUI HBar
+// ************************************************************************
+function MH_MakeHBar(space: longword): pObject_;
+begin
+ MH_MakeHBar:=MUI_MakeObject(MUIO_HBar, [space]);
+end;
+
+function MH_MakeHBar(var hbar; space: longword): pObject_;
+begin
+ pObject_(hbar):=MUI_MakeObject(MUIO_HBar, [space]);
+ MH_MakeHBar:=pObject_(hbar);
+end;
+
+
+// Creates a MUI VGroup
+// ************************************************************************
+function MH_VGroup(tags: array of LongWord): pObject_;
+begin
+ MH_VGroup:=MUI_NewObject(MUIC_Group, tags);
+end;
+
+function MH_VGroup(frame: longword; tags: array of LongWord): pObject_;
+begin
+ MH_VGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Frame, frame, TAG_MORE, DWord(@tags) ] );
+end;
+
+function MH_VGroup(title: PChar; tags: array of LongWord): pObject_;
+begin
+ MH_VGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Frame, MUIV_Frame_Group,
+ MUIA_FrameTitle, longword(title),
+ MUIA_Background, MUII_GroupBack,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+
+// Creates a MUI HGroup
+// ************************************************************************
+function MH_HGroup(tags: array of LongWord): pObject_;
+begin
+ MH_HGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Horiz, MUI_TRUE, TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_HGroup(frame: longword; tags: array of LongWord): pObject_;
+begin
+ MH_HGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Horiz, MUI_TRUE,
+ MUIA_Frame, frame,
+ TAG_MORE, DWord(@tags) ] );
+end;
+
+function MH_HGroup(title: PChar; tags: array of LongWord): pObject_;
+begin
+ MH_HGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Horiz, MUI_TRUE,
+ MUIA_Frame, MUIV_Frame_Group,
+ MUIA_FrameTitle, longword(title),
+ MUIA_Background, MUII_GroupBack,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+
+// Creates MUI ColGroup
+// ************************************************************************
+function MH_ColGroup(cols: longword; tags: array of LongWord): pObject_;
+begin
+ MH_ColGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Columns, cols, TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_ColGroup(cols: longword; frame: longword; tags: array of LongWord): pObject_;
+begin
+ MH_ColGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Columns, cols,
+ MUIA_Frame, frame,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_ColGroup(cols: longword; title: PChar; tags: array of LongWord): pObject_;
+begin
+ MH_ColGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Columns, cols,
+ MUIA_Frame, MUIV_Frame_Group,
+ MUIA_FrameTitle, longword(title),
+ MUIA_Background, MUII_GroupBack,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+
+// Creates MUI RowGroup
+// ************************************************************************
+function MH_RowGroup(rows: longword; tags: array of LongWord): pObject_;
+begin
+ MH_RowGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Rows, rows, TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_RowGroup(rows: longword; frame: longword; tags: array of LongWord): pObject_;
+begin
+ MH_RowGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Rows, rows,
+ MUIA_Frame, frame,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_RowGroup(rows: longword; title: PChar; tags: array of LongWord): pObject_;
+begin
+ MH_RowGroup:=MUI_NewObject(MUIC_Group, [ MUIA_Group_Rows, rows,
+ MUIA_Frame, MUIV_Frame_Group,
+ MUIA_FrameTitle, longword(title),
+ MUIA_Background, MUII_GroupBack,
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+
+// Creates a MUI text area
+// ************************************************************************
+function MH_Text(contents: PChar): pObject_;
+begin
+ MH_Text:=MUI_NewObject(MUIC_Text,[ MUIA_Text_Contents, DWord(contents), TAG_DONE ]);
+end;
+
+function MH_Text(contents: PChar; tags: array of LongWord): pObject_;
+begin
+ MH_Text:=MUI_NewObject(MUIC_Text,[ MUIA_Text_Contents, DWord(contents),
+ TAG_MORE, DWord(@tags) ]);
+end;
+
+function MH_Text(var text_; contents: PChar): pObject_;
+begin
+ pObject_(text_):=MUI_NewObject(MUIC_Text,[ MUIA_Text_Contents, DWord(contents), TAG_DONE ]);
+ MH_Text:=pObject_(text_);
+end;
+
+function MH_Text(var text_; contents: PChar; tags: array of LongWord): pObject_;
+begin
+ pObject_(text_):=MUI_NewObject(MUIC_Text,[ MUIA_Text_Contents, DWord(contents),
+ TAG_MORE, DWord(@tags) ]);
+ MH_Text:=pObject_(text_);
+end;
+
+
+end.