-
Notifications
You must be signed in to change notification settings - Fork 0
MUI_Dirlist
Dirlist class provides a quick and easy way of showing entries in a directory. It features lots of control attributes, many of them known from the popular ASL file requester.
This class is NOT intended to replace asl.library! Nobody wants to see every MUI application coming with another selfmade file requester. Please continue using ASL for real file requesting purposes!
However, sometimes it may be useful to have a little directory list placed somewhere in your user interface. Imagine an answering machine tool that stores incoming calls in a preconfigured directory. Using a dirlist object, you can include the GUI for selecting a call in your window with lots of other gadgets like "Play", "Delete", etc.
Dirlist class offers all of a files attributes: name, size, date, time, flags and comment. Using the MUIA_List_Format attribute, you can control which of them shall be displayed.
If you want to read the entries of your directory, just send the dirlist object a MUIM_List_GetEntry method. You will receive a pointer to a struct FileInfoBlock which remains valid until your next call to MUIM_List_GetEntry.
Attribute | Version | ISG | Type |
---|---|---|---|
MUIA_Dirlist_AcceptPattern | V4 | ISG | STRPTR |
MUIA_Dirlist_Directory | V4 | ISG | STRPTR |
MUIA_Dirlist_DrawersOnly | V4 | IS. | BOOL |
MUIA_Dirlist_ExAllType | V20 | I.G | ULONG |
MUIA_Dirlist_FilesOnly | V4 | IS. | BOOL |
MUIA_Dirlist_FilterDrawers | V4 | IS. | BOOL |
MUIA_Dirlist_FilterHook | V4 | IS. | struct Hook * |
MUIA_Dirlist_MultiSelDirs | V6 | IS. | BOOL |
MUIA_Dirlist_NumBytes | V4 | ..G | LONG |
MUIA_Dirlist_NumBytes64 | V20 | ..G | int64 * |
MUIA_Dirlist_NumDrawers | V4 | ..G | LONG |
MUIA_Dirlist_NumFiles | V4 | ..G | LONG |
MUIA_Dirlist_Path | V4 | ..G | STRPTR |
MUIA_Dirlist_Pattern | V20 | IS. | STRPTR |
MUIA_Dirlist_RejectIcons | V4 | IS. | BOOL |
MUIA_Dirlist_RejectPattern | V4 | ISG | STRPTR |
MUIA_Dirlist_SortDirs | V4 | IS. | LONG |
MUIA_Dirlist_SortHighLow | V4 | IS. | BOOL |
MUIA_Dirlist_SortType | V4 | IS. | LONG |
MUIA_Dirlist_Status | V4 | ..G | LONG |
Method | Version |
---|---|
MUIM_Dirlist_Rename | V21 |
MUIM_Dirlist_ReRead | V4 |
MUIM_Dirlist_SetComment | V21 |
MUIM_Dirlist_SetProtection | V21 |
MUIA_Dirlist_AcceptPattern -- V4 [ISG], STRPTR
, 0x8042760a
FUNCTIONS Entries not matching this pattern are rejected. Note that the pattern has to be parsed with dos.library/ParsePatternNoCase(). Since V20 empty strings are handled like no pattern string.
MUIA_Dirlist_RejectPattern, MUIA_Dirlist_FilterDrawers
MUIA_Dirlist_Directory -- V4 [ISG], STRPTR
, 0x8042ea41
Set a new directory for the dirlist object. Since reading a directory can take a long long time, MUI delegates this work to a sub task.
Setting this attribute causes the object to clear the current directory (if any) and start loading a new one. MUIA_Dirlist_Status will be set to MUIV_Dirlist_Status_Reading and the sub task will be launched.
By listening to MUIA_Dirlist_Status, you can learn if the directory reading is completed or if something went wrong.
A value of NULL just clears the current directory and sets MUIA_Dirlist_Status to MUIV_Dirlist_Status_Invalid.
set(dirobj, MUIA_Dirlist_Directory, "ftp:incoming");
MUIA_Dirlist_DrawersOnly -- V4 [IS.], BOOL
, 0x8042b379
Indicate whether you only want drawers to be displayed.
MUIA_Dirlist_Directory, MUIA_Dirlist_FilesOnly
MUIA_Dirlist_ExAllType -- V20 [I.G], ULONG
, 0x8042cd7c
Set an ExAll() type to use. If you need the ExAllData structure in a Dirlist hook, set the type you need here, then get the attribute again to make sure your type is supported by MUI. Note that you might get a higher type back.
dirobj = DirlistObject, MUIA_Dirlist_ExAllType, ED_OWNER, End;
if(xget(dirobj, MUIA_Dirlist_ExAllType) >= ED_OWNER)
{
/* all fine */
}
MUIA_Dirlist_FilesOnly -- V4 [IS.], BOOL
, 0x8042896a
Indicate whether you only want files to be displayed.
MUIA_Dirlist_Directory, MUIA_Dirlist_DrawersOnly
MUIA_Dirlist_FilterDrawers -- V4 [IS.], BOOL
, 0x80424ad2
Indicate whether you want drawers matched agains MUIA_Dirlist_RejectPattern and MUIA_Dirlist_AcceptPattern.
Defaults to FALSE.
MUIA_Dirlist_RejectPattern, MUIA_Dirlist_AcceptPattern
MUIA_Dirlist_FilterHook -- V4 [IS.], struct Hook *
, 0x8042ae19
A hook to call for each file encountered. If the function returns TRUE, the file is included in the file list, otherwise it is rejected and not displayed. The function receives the following parameters:
struct Hook *hook (in A0)
the hook itself.
Object *obj (in A2)
the Dirlist object.
struct ExAllData *exd (in A1)
a pointer to an initialized ExAllData structure. This one is
valid up to the ed_Comment field.
All other filter attributes are ignored when a MUIA_Dirlist_FilterHook is set.
MUIA_Dirlist_MultiSelDirs -- V6 [IS.], BOOL
, 0x80428653
Allows multi selection of directories.
Defaults to FALSE.
MUIA_Dirlist_NumBytes -- V4 [..G], LONG
, 0x80429e26
When MUIA_Dirlist_Status is MUIV_Dirlist_Valid, you can obtain the number of bytes occupied by the directory from this tag.
MUIA_Dirlist_NumFiles, MUIA_Dirlist_NumDrawers
MUIA_Dirlist_NumBytes64 -- V20 [..G], int64 *
, 0x80428050
When MUIA_Dirlist_Status is MUIV_Dirlist_Valid, you can obtain the number of bytes occupied by the directory from this tag as 64bit value.
MUIA_Dirlist_NumFiles, MUIA_Dirlist_NumDrawers
MUIA_Dirlist_NumDrawers -- V4 [..G], LONG
, 0x80429cb8
When MUIA_Dirlist_Status is MUIV_Dirlist_Valid, you can obtain the number of drawers in the displayed directory from this tag.
MUIA_Dirlist_NumFiles, MUIA_Dirlist_Status
MUIA_Dirlist_NumFiles -- V4 [..G], LONG
, 0x8042a6f0
When MUIA_Dirlist_Status is MUIV_Dirlist_Valid, you can obtain the number of files in the displayed directory from this tag.
MUIA_Dirlist_NumDrawers, MUIA_Dirlist_Status
MUIA_Dirlist_Path -- V4 [..G], STRPTR
, 0x80426176
When MUIA_Dirlist_Status is MUIV_Dirlist_Valid and you have an active entry in the list (MUIA_List_Active not equal MUIV_List_Active_Off), you will receive a pointer to the complete path specification of the selected file. Otherwise you get a NULL.
MUIA_Dirlist_Pattern -- V20 [IS.], STRPTR
, 0x8042c761
Set a DOS pattern to match all found file names against. The given pattern string will be used in a case insensitive way if neither the accept nor the reject pattern excluded the file from inclusion.
set(dirobj, MUIA_Dirlist_Pattern, "#?.png");
MUIA_Dirlist_AcceptPattern, MUIA_Dirlist_RejectPattern
MUIA_Dirlist_RejectIcons -- V4 [IS.], BOOL
, 0x80424808
Indicate whether you want icons (*.info files) to be rejected.
MUIA_Dirlist_RejectPattern -- V4 [ISG], STRPTR
, 0x804259c7
Entries matching this pattern are rejected. Note that the pattern has to be parsed with dos.library/ParsePatternNoCase(). Since V20 empty strings are handled like no pattern string.
MUIA_Dirlist_AcceptPattern, MUIA_Dirlist_FilterDrawers
MUIA_Dirlist_SortDirs -- V4 [IS.], LONG
, 0x8042bbb9
- MUIV_Dirlist_SortDirs_First
- MUIV_Dirlist_SortDirs_Last
- MUIV_Dirlist_SortDirs_Mix
Adjust the place where directories shall be displayed.
MUIA_Dirlist_SortHighLow, MUIA_Dirlist_SortType
MUIA_Dirlist_SortHighLow -- V4 [IS.], BOOL
, 0x80421896
Indicate if you want to sort your directory reversely.
MUIA_Dirlist_SortType, MUIA_Dirlist_SortDirs
MUIA_Dirlist_SortType -- V4 [IS.], LONG
, 0x804228bc
- MUIV_Dirlist_SortType_Name
- MUIV_Dirlist_SortType_Date
- MUIV_Dirlist_SortType_Size
- MUIV_Dirlist_SortType_Comment
- MUIV_Dirlist_SortType_Flags
- MUIV_Dirlist_SortType_Type
- MUIV_Dirlist_SortType_Used
- MUIV_Dirlist_SortType_Time
- MUIV_Dirlist_SortType_DateTime
- MUIV_Dirlist_SortType_Count
Indicate what fields should be used as sort criteria.
MUIA_Dirlist_SortDirs, MUIA_Dirlist_SortHighLow
MUIA_Dirlist_Status -- V4 [..G], LONG
, 0x804240de
- MUIV_Dirlist_Status_Invalid
- MUIV_Dirlist_Status_Reading
- MUIV_Dirlist_Status_Valid
Read the status of the dirlist object. The result is one of
MUIV_Dirlist_Status_Invalid
object contains no valid directory.
MUIV_Dirlist_Status_Reading
object is currently reading a new directory.
MUIV_Dirlist_Status_Valid
object contains a valid directory.
MUIM_Dirlist_Rename -- V21, 0x8042d336
DoMethod(obj, MUIM_Dirlist_Rename, LONG row, CONST_STRPTR newname);
Rename the file or directory associated with the specified row to the new name.
LONG row
row of entry to be renamed.
CONST_STRPTR newname
new name of entry.
Zero on success or IoErr() value in case of failure.
dos.library/IoErr(), dos.library/Rename()
MUIM_Dirlist_ReRead -- V4, 0x80422d71
DoMethod(obj, MUIM_Dirlist_ReRead);
Force the dirlist object to reread the current directory.
if(NewCallReceived())
DoMethod(dirlistobj, MUIM_Dirlist_ReRead);
MUIM_Dirlist_SetComment -- V21, 0x8042b378
DoMethod(obj, MUIM_Dirlist_SetComment, LONG row, CONST_STRPTR comment);
Set the comment of the file or directory associated with the specified row to the new comment.
LONG row
row of entry to be commented.
CONST_STRPTR comment
new comment of entry.
Zero on success or IoErr() value in case of failure.
dos.library/IoErr(), dos.library/SetComment()
MUIM_Dirlist_SetProtection -- V21, 0x804202bb
DoMethod(obj, MUIM_Dirlist_SetProtection, LONG row, ULONG flags);
Set the protection bits the file or directory associated with the specified row to the new value.
LONG row
row of entry to set the protection bits for.
ULONG flags
new protection bits.
Zero on success or IoErr() value in case of failure.
dos.library/IoErr(), dos.library/SetProtection()
Copyright © 1992-2006 by Stefan Stuntz Copyright © 2006-2021 by Thore Böckelmann, Jens Maus |
MUI for AmigaOS Homepage MUI for AmigaOS Wiki |
Updated: 11-Oct-2021 |