home *** CD-ROM | disk | FTP | other *** search
-
- /**********************************************\
- * *
- * WbMan *
- * *
- * Version: 0.42 (27.8.93) *
- * *
- * Copyright 1993 by kMel, Klaus Melchior *
- * kmel@eifel.adsp.sub.org, 2:242/7.2@Fidonet *
- * *
- * Manages the tools in the WBStartup- *
- * Folder, the ToolTypes could be changed. *
- * *
- \**********************************************/
-
- /* DMAKE */
-
- /* TAB=4 */
-
-
-
-
- /*** escape sequences ***/
-
- #define eR "\033r"
- #define eC "\033c"
- #define eL "\033l"
-
- #define eN "\033n"
- #define eB "\033b"
- #define eI "\033i"
-
- #define ePB "\0332"
- #define ePW "\0338"
-
-
-
-
- /*** includes ***/
-
- #include "demo.h"
- #define MAXNAMELEN 256
-
- #include <exec/memory.h>
- #include <workbench/workbench.h>
- #include <clib/icon_protos.h>
-
-
-
-
- /*** ids ***/
-
- enum ids {
- ID_DUMMY,
- ID_ABOUT,
- ID_RESCAN, ID_SELECT_ALL, ID_SELECT_NONE, ID_SELECT_PATTERN,
- ID_EDIT, ID_LV_ACTIVE,
- ID_ACTIVATE, ID_TOGGLE, ID_DEACTIVATE, ID_RESTORE,
- ID_PERFORM, ID_QUIT,
-
- ID_STRING_OK, ID_STRING_CANCEL,
-
- ID_EDIT_LV_ACTIVE,
- ID_EDIT_NEW, ID_EDIT_COPY, ID_EDIT_REMOVE,
- ID_EDIT_ACTIVATE, ID_EDIT_DEACTIVATE,
- ID_EDIT_ST_READY,
- ID_EDIT_SAVE, ID_EDIT_CANCEL,
- };
-
- enum mode_change {
- MODE_ACTIVATE, MODE_DEACTIVATE,
- MODE_TOGGLE, MODE_RESTORE,
- };
-
-
-
-
- /*** variables ***/
-
- static APTR app;
- static APTR wi_main;
- static APTR lv_tools;
- static APTR bt_activate, bt_toggle, bt_deactivate;
- static APTR bt_edit;
- static APTR tx_info;
- static APTR bt_perform, bt_quit;
-
- static APTR wi_string_request;
- static APTR st_string;
- static APTR bt_string_ok, bt_string_cancel;
-
- static APTR wi_edit;
- static APTR tx_edit;
- static APTR lv_edit;
- static APTR bt_edit_new, bt_edit_copy, bt_edit_remove;
- static APTR bt_edit_activate, bt_edit_deactivate;
- static APTR st_edit_string, st_edit_default;
- static APTR bt_edit_save, bt_edit_cancel;
-
-
- static struct DiskObject *disk_object;
- static BOOL temp_dobj_flag;
-
- static BOOL edit_window_open = FALSE;
- static BOOL string_request_open = FALSE;
-
-
-
-
- /*** funcs ***/
-
- /*** clear tools_listview ***/
-
- BOOL clear_tools_list(void)
- {
- DoMethod(lv_tools, MUIM_List_Clear);
-
- return(TRUE);
- }
-
-
-
-
- /*** insert tools in tools_listview ***/
-
- BOOL insert_tools_list(void)
- {
- BOOL ok = FALSE;
- struct FileInfoBlock *fib;
-
- /*** alloc mem for fileinfoblock ***/
- if (fib = AllocDosObject(DOS_FIB, NULL))
- {
- BPTR lock;
-
- /*** lock on the wbstartup-directory ***/
- if (lock = Lock("SYS:WBStartup/", ACCESS_READ))
- {
- /*** first examine ***/
- Examine(lock, fib);
-
- /*** scan, until last entry ***/
- while (ExNext(lock, fib) && (IoErr()!=ERROR_NO_MORE_ENTRIES))
- {
- /*** mui refresh ***/
- DoMethod(app, MUIM_Application_InputBuffered);
-
- /*** insert fib-entry ***/
- DoMethod(lv_tools, MUIM_List_Insert, &fib, 1, MUIV_List_Insert_Sorted);
- }
-
- UnLock(lock);
- ok = TRUE;
- }
-
- FreeDosObject(DOS_FIB, fib);
- }
-
- return(ok);
- }
-
-
-
-
- /*** rescan filenames of tools in the wbstartup-path ***/
-
- void rescan_tools_list(void)
- {
- if (!(
- clear_tools_list() &&
- insert_tools_list()
- ))
- {
- fail(app,"Lock on 'SYS:WBStartup/' failed !");
- }
- }
-
-
-
-
- /*** check tool, if it exists in wbstartup-path ***/
-
- BOOL check_tool_name(char *n)
- {
- char *fn;
- BPTR fh;
-
- /*** alloc mem for complete filename ***/
- if (fn = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- sprintf(fn, "SYS:WBStartup/%s", n);
-
- if (fh = Open(fn, MODE_OLDFILE))
- Close(fh);
-
- FreeMem(fn, MAXNAMELEN);
- }
-
- return((BOOL) fh);
- }
-
-
-
-
- /*** count active & inactive tools ***/
-
- void count_tools_list(void)
- {
- ULONG i;
- UWORD nr_active = 0, nr_inactive = 0, nr_changed = 0;
- char *line;
-
- /*** count ***/
- for (i=0; ; i++)
- {
- DoMethod(lv_tools, MUIM_List_GetEntry, i, &line);
-
- /*** last line ? ***/
- if (!line)
- break;
-
- /*** count tools ***/
- if (*(line+2) == '8')
- nr_active++;
- else
- nr_inactive++;
-
- if (*(line+4) == 'b')
- nr_changed++;
- }
-
- {
- char *s_inactive = "s";
-
- /*** check if 'tool' or 'tools' ***/
- if (nr_inactive == 1)
- s_inactive = "";
-
- /*** generate info text ***/
- DoMethod(tx_info, MUIM_SetAsString, MUIA_Text_Contents,
- eC ePB "%ld tool%s inactive · " ePW "%ld active · " eB ePB "%ld changed",
- nr_inactive, s_inactive, nr_active, nr_changed);
- }
- }
-
-
-
-
-
- /*** disable gadgets & menus, show changes ***/
-
- void check_entries(void)
- {
- ULONG i, sel, c_pos;
- UWORD nr_active = 0, nr_inactive = 0, nr_selected = 0;
- char *line;
-
- BOOL disable_activate = TRUE, disable_toggle = TRUE;
- BOOL disable_deactivate = TRUE, disable_restore = TRUE;
- BOOL disable_perform = TRUE, disable_edit = TRUE;
-
- BOOL refresh_display = FALSE;
-
-
- /*** cursor position ***/
- get(lv_tools, MUIA_List_Active, &c_pos);
-
- /*** count ***/
- for (i=0;; i++)
- {
- DoMethod(lv_tools, MUIM_List_GetEntry, i, &line);
-
- /*** last line ? ***/
- if (!line)
- break;
-
- /*** count selected or at cursor-position ***/
- DoMethod(lv_tools, MUIM_List_Select, i, MUIV_List_Select_Ask, &sel);
- if (sel || i==c_pos)
- {
- /*** count status of selected tools ***/
- if (*(line+2)=='8')
- nr_active++;
- else
- nr_inactive++;
-
- nr_selected++;
- }
-
- /*** check difference between stored and new status ***/
- if (*(line+2) != *line)
- {
- /*** make entry bold ***/
- if (*(line+4)!='b')
- refresh_display = TRUE;
- *(line+4)='b';
-
- disable_perform = FALSE;
- }
- else
- {
- /*** now a normal entry ***/
- if (*(line+4)!='n')
- refresh_display = TRUE;
- *(line+4)='n';
- }
- }
-
- if (nr_selected > 0)
- {
- disable_toggle = FALSE;
- disable_restore = FALSE;
-
- if (nr_inactive)
- disable_activate = FALSE;
-
- if (nr_active)
- disable_deactivate = FALSE;
- }
-
- if (nr_selected == 1)
- disable_edit = FALSE;
-
-
- /*** set status of gadgets ***/
- set(bt_perform, MUIA_Disabled, disable_perform);
-
- set(bt_activate, MUIA_Disabled, disable_activate);
- set(bt_toggle, MUIA_Disabled, disable_toggle);
- set(bt_deactivate, MUIA_Disabled, disable_deactivate);
- set(bt_edit, MUIA_Disabled, disable_edit);
-
-
- /*** set status of menus ***/
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_PERFORM, !disable_perform);
-
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_ACTIVATE, !disable_activate);
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_DEACTIVATE, !disable_deactivate);
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_TOGGLE, !disable_toggle);
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_RESTORE, !disable_restore);
-
- DoMethod(wi_main, MUIM_Window_SetMenuState ,ID_EDIT, !disable_edit);
-
- /*** refresh display ***/
- if (refresh_display)
- DoMethod(lv_tools, MUIM_List_Redraw, MUIV_List_Redraw_All);
- }
-
-
-
-
- /*** change status of tools ***/
-
- void change_tools_list_entry(LONG pos, UWORD mode)
- {
- char *line, *pen;
-
- /*** get entry ***/
- DoMethod(lv_tools, MUIM_List_GetEntry, pos, &line);
- pen = line+2;
-
- /*** change entry ***/
- switch (mode)
- {
- case MODE_ACTIVATE:
- *pen = '8';
- break;
-
- case MODE_DEACTIVATE:
- *pen = '2';
- break;
-
- case MODE_TOGGLE:
- if (*pen=='2')
- *pen = '8';
- else
- *pen = '2';
- break;
-
- case MODE_RESTORE:
- *pen = *line;
- break;
- }
- }
-
- void change_tools_list_entry_cursor(UWORD mode)
- {
- LONG i;
-
- get(lv_tools, MUIA_List_Active, &i);
-
- if (i >= 0)
- {
- change_tools_list_entry(i, mode);
- DoMethod(lv_tools, MUIM_List_Redraw, i);
- }
- }
-
- void change_tools_list(UWORD mode)
- {
- ULONG end, i, nr=0;
- ULONG sel;
-
- /*** get number of all entries ***/
- get(lv_tools, MUIA_List_Entries, &end);
-
- set(lv_tools, MUIA_List_Quiet, TRUE);
- for (i=0; i<end ; i++)
- {
- /*** entry selected ? ***/
- DoMethod(lv_tools, MUIM_List_Select, i, MUIV_List_Select_Ask, &sel);
- if (sel)
- {
- change_tools_list_entry(i, mode);
- nr++;
- }
- }
- set(lv_tools, MUIA_List_Quiet, FALSE);
-
- /*** refresh display, if almost one entry is selected ***/
- if (nr>0)
- DoMethod(lv_tools, MUIM_List_Redraw, MUIV_List_Redraw_All);
-
- /*** change entry on cursor-position ***/
- else
- change_tools_list_entry_cursor(mode);
- }
-
-
-
-
- /*** select every entry of tools_list ***/
-
- void select_tools_list(ULONG mode)
- {
- ULONG end, i;
- ULONG sel;
-
- /*** get number of all entries ***/
- get(lv_tools, MUIA_List_Entries, &end);
-
- for (i=0; i<end ; i++)
- DoMethod(lv_tools, MUIM_List_Select, i, mode, &sel);
-
- /*** refresh display ***/
- DoMethod(lv_tools, MUIM_List_Redraw, MUIV_List_Redraw_All);
- }
-
-
-
-
- /*** select tools of tools_list matching pattern ***/
-
- void select_pattern_tools_list(char *pattern)
- {
- ULONG end, i;
- ULONG sel;
- char *tool_name, *pattern_token;
-
- /*** alloc mem for pattern_name ***/
- if (pattern_token = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- /*** tokenize pattern ***/
- ParsePatternNoCase(pattern, pattern_token, MAXNAMELEN);
-
- /*** get number of all entries ***/
- get(lv_tools, MUIA_List_Entries, &end);
-
- for (i=0; i<end ; i++)
- {
- DoMethod(lv_tools, MUIM_List_GetEntry, i, &tool_name);
-
- /*** check tool_name, if it fits on pattern ***/
- if (MatchPatternNoCase(pattern_token, tool_name+5))
- DoMethod(lv_tools, MUIM_List_Select, i, MUIV_List_Select_On, &sel);
- }
-
- /*** refresh display ***/
- DoMethod(lv_tools, MUIM_List_Redraw, MUIV_List_Redraw_All);
-
- FreeMem(pattern_token, MAXNAMELEN);
- }
- }
-
-
-
-
- /*** rename the tools in the wbstartup-directory ***/
-
- void rename_tools_list(void)
- {
- char *file_name, *new_file_name;
-
- /*** alloc mem for filenames ***/
- if (file_name = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- if (new_file_name = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- char *line;
- ULONG i;
-
- for (i=0; ; i++)
- {
- DoMethod(lv_tools, MUIM_List_GetEntry, i, &line);
-
- if (!line)
- break;
-
- /*** check if old and new status different ***/
- if (*(line+4) == 'b')
- {
-
- /*** turn status to active ***/
- if (*(line+2) == '8')
- {
- sprintf(file_name, "SYS:WBStartup/%s.noinfo", line+5);
- sprintf(new_file_name, "SYS:WBStartup/%s.info", line+5);
- }
-
- /*** turn status to inactive ***/
- else
- {
- sprintf(file_name, "SYS:WBStartup/%s.info", line+5);
- sprintf(new_file_name, "SYS:WBStartup/%s.noinfo", line+5);
- }
-
- if (rename(file_name, new_file_name))
- printf("Can't rename: '%s' -> '%s'\n", file_name, new_file_name);
- }
- }
- FreeMem(new_file_name, MAXNAMELEN);
-
- }
- FreeMem(file_name, MAXNAMELEN);
-
- }
- }
-
-
-
-
- /*** string requester ***/
-
- /*** open requester ***/
-
- BOOL open_string_request(char *title_text, ULONG string_len)
- {
- wi_string_request = WindowObject,
- MUIA_Window_ID, MAKE_ID('S','R','E','Q'),
- MUIA_Window_Title, "WbMan",
- MUIA_Window_Menu, MUIV_Window_Menu_NoMenu,
- WindowContents, VGroup,
- Child, HGroup,
- GroupFrameT(title_text),
- Child, st_string = StringObject,
- StringFrame,
- MUIA_String_MaxLen, string_len,
- End,
- End,
- Child, VSpace(2),
- Child, HGroup,
- MUIA_Group_SameSize, TRUE,
- Child, bt_string_ok = SimpleButton("_OK"),
- Child, HSpace(0),
- Child, bt_string_cancel = SimpleButton("_Cancel"),
- End,
- End,
- End;
-
-
- /*** string requester failed ? ***/
- if (!wi_string_request)
- fail(app, "Creating string-requester failed !");
-
-
-
- /*** connections & cycle ***/
-
- DoMethod(wi_string_request, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, ID_STRING_CANCEL );
-
- DoMethod(bt_string_ok, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_STRING_OK );
- DoMethod(bt_string_cancel, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_STRING_CANCEL );
-
- /*** activate ok-button if string is ready ***/
- DoMethod(st_string,
- MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
- wi_string_request, 3,
- MUIM_Set, MUIA_Window_ActiveObject, bt_string_ok);
-
- DoMethod(wi_string_request, MUIM_Window_SetCycleChain,
- st_string,
- bt_string_ok, bt_string_cancel,
- NULL);
-
-
- /*** add & open window ***/
-
- DoMethod(app, OM_ADDMEMBER, wi_string_request);
- set(wi_string_request, MUIA_Window_Open , TRUE);
- set(wi_string_request, MUIA_Window_ActiveObject , st_string);
-
- return(TRUE);
- }
-
-
- /*** close requester ***/
-
- void close_string_request(void)
- {
- /*** close & remove window ***/
- set(wi_string_request, MUIA_Window_Open, FALSE);
- DoMethod(app, OM_REMMEMBER, wi_string_request);
- MUI_DisposeObject(wi_string_request);
-
- /*** wake up main-window ***/
- set(wi_main, MUIA_Window_Sleep, FALSE);
- }
-
-
-
-
- /*** edit tooltypes ***/
-
- /*** open edit-window ***/
-
- BOOL open_edit_window(struct DiskObject *dobj, char *name)
- {
- wi_edit = WindowObject,
- MUIA_Window_ID, MAKE_ID('E','D','I','T'),
- MUIA_Window_Title, "WbMan",
- MUIA_Window_Menu, MUIV_Window_Menu_NoMenu,
- WindowContents, VGroup,
- Child, HGroup,
- TextFrame,
- InnerSpacing(4,3),
- Child, ImageObject,
- MUIA_Image_OldImage, dobj->do_Gadget.GadgetRender,
- End,
- Child, VGroup,
- Child, VSpace(0),
- Child, tx_edit = TextObject,
- MUIA_Text_PreParse, eC,
- MUIA_Text_Contents, name,
- MUIA_Text_SetMin, TRUE,
- End,
- Child, VSpace(0),
- End,
- Child, ImageObject,
- MUIA_Image_OldImage, dobj->do_Gadget.GadgetRender,
- End,
- End,
- Child, VGroup,
- GroupFrameT("ToolTypes"),
- Child, VGroup,
- GroupSpacing(0),
- Child, lv_edit = ListviewObject,
- MUIA_Listview_Input, TRUE,
- MUIA_Listview_List, ListObject,
- InputListFrame,
- MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
- MUIA_List_DestructHook, MUIV_List_DestructHook_String,
- End,
- End,
- Child, HGroup,
- GroupSpacing(0),
- Child, bt_edit_new = SimpleButton("_New"),
- Child, bt_edit_copy = SimpleButton("Cop_y"),
- Child, bt_edit_remove = SimpleButton("_Remove"),
- End,
- Child, HGroup,
- GroupSpacing(0),
- Child, bt_edit_activate = SimpleButton("_Activate"),
- Child, bt_edit_deactivate = SimpleButton("_Deactivate"),
- End,
- Child, st_edit_string = StringObject,
- StringFrame,
- End,
- End,
- End,
- Child, HGroup,
- Child, Label2("Default Tool:"),
- Child, st_edit_default = String(NULL, MAXNAMELEN),
- End,
- Child, VSpace(2),
- Child, HGroup,
- MUIA_Group_SameSize, TRUE,
- Child, bt_edit_save = SimpleButton("_Save"),
- Child, HSpace(0),
- Child, bt_edit_cancel = SimpleButton("_Cancel"),
- End,
- End,
- End;
-
-
- /*** window failed ? ***/
- if (!wi_edit)
- fail(app, "Creating edit-window failed !");
-
-
- /*** connections & cycle ***/
-
- DoMethod(wi_edit, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, ID_EDIT_CANCEL );
-
- DoMethod(bt_edit_new, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_NEW );
- DoMethod(bt_edit_copy, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_COPY );
- DoMethod(bt_edit_remove, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_REMOVE );
-
- DoMethod(bt_edit_activate, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_ACTIVATE );
- DoMethod(bt_edit_deactivate, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_DEACTIVATE );
-
- DoMethod(bt_edit_save, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_SAVE );
- DoMethod(bt_edit_cancel, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT_CANCEL );
-
- DoMethod(lv_edit, MUIM_Notify, MUIA_Listview_SelectChange, TRUE, app, 2, MUIM_Application_ReturnID, ID_EDIT_LV_ACTIVE );
-
- set(lv_edit, MUIA_List_Active, MUIV_List_Active_Top);
- DoMethod(lv_edit,
- MUIM_Notify, MUIA_List_Active, MUIV_EveryTime,
- app, 2,
- MUIM_Application_ReturnID, ID_EDIT_LV_ACTIVE);
-
- set(st_edit_string, MUIA_String_AttachedList, lv_edit);
- DoMethod(st_edit_string,
- MUIM_Notify, MUIA_String_Acknowledge, MUIV_EveryTime,
- app, 2,
- MUIM_Application_ReturnID, ID_EDIT_ST_READY);
-
- DoMethod(wi_edit, MUIM_Window_SetCycleChain,
- st_edit_string,
- bt_edit_new, bt_edit_copy, bt_edit_remove,
- st_edit_default,
- bt_edit_save, bt_edit_cancel,
- NULL);
-
-
- /*** add & open window ***/
- DoMethod(app, OM_ADDMEMBER, wi_edit);
- set(wi_edit, MUIA_Window_Open, TRUE);
- set(wi_edit, MUIA_Window_ActiveObject, st_edit_string);
-
- return(TRUE);
- }
-
-
- /*** close edit-window ***/
-
- void close_edit_window(void)
- {
- /*** close & remove window ***/
- set(wi_edit, MUIA_Window_Open, FALSE);
- DoMethod(app, OM_REMMEMBER, wi_edit);
- MUI_DisposeObject(wi_edit);
-
- if (disk_object)
- FreeDiskObject(disk_object);
-
- /*** wake up main-window ***/
- set(wi_main, MUIA_Window_Sleep, FALSE);
- }
-
-
- /*** disable gadgets ***/
-
- void check_edit_entries(void)
- {
- LONG pos;
- char *line;
-
- BOOL disable_cursor = TRUE;
- BOOL disable_activate = TRUE, disable_deactivate = TRUE;
-
-
- /*** cursor position ***/
- get(lv_edit, MUIA_List_Active, &pos);
-
- if (pos >= 0)
- {
- disable_cursor = FALSE;
-
- /*** get active line ***/
- DoMethod(lv_edit, MUIM_List_GetEntry, pos, &line);
-
- /*** check if there are brakets -> inactive ***/
- if (*line == '(' && *(line + strlen(line) - 1) == ')')
- disable_activate = FALSE;
- else
- disable_deactivate = FALSE;
- }
-
- set(bt_edit_copy, MUIA_Disabled, disable_cursor);
- set(bt_edit_remove, MUIA_Disabled, disable_cursor);
- set(st_edit_string, MUIA_Disabled, disable_cursor);
-
- set(bt_edit_activate, MUIA_Disabled, disable_activate);
- set(bt_edit_deactivate, MUIA_Disabled, disable_deactivate);
-
- /*** clear string if disabled ***/
- if (disable_cursor)
- set(st_edit_string, MUIA_String_Contents, "");
-
- }
-
-
- /*** edit the active tool ***/
-
- void edit_tooltypes_diskobject(struct DiskObject *dobj, char *fn)
- {
- char **tt;
-
- /*** open window ***/
- if (open_edit_window(dobj, fn))
- {
- tt = dobj->do_ToolTypes;
-
- /*** copy tooltype-array into listview ***/
- while (tt && *tt)
- DoMethod(lv_edit, MUIM_List_Insert, tt++, 1, MUIV_List_Insert_Bottom);
-
- /*** fill in strings ***/
- set(st_edit_default, MUIA_String_Contents, dobj->do_DefaultTool);
- set(lv_edit, MUIA_List_Active, MUIV_List_Active_Top);
- }
- }
-
- void edit_tooltypes_entry(void)
- {
- char *file_name;
-
- if (file_name = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- char *line;
-
- /*** get entry ***/
- DoMethod(lv_tools, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &line);
-
- sprintf(file_name, "SYS:WBStartup/%s", line+5);
-
- if (disk_object = GetDiskObject(file_name))
- {
- temp_dobj_flag = FALSE;
- edit_tooltypes_diskobject(disk_object, line+5);
- }
- else
- {
- /*** is tool inactive ? create temporary .info-file ***/
- temp_dobj_flag = TRUE;
- sprintf(file_name, "copy SYS:WBStartup/%s.noinfo T:WbMan_Temp.info", line+5);
- if (Execute(file_name, NULL, NULL) &&
- (disk_object = GetDiskObjectNew("T:WbMan_Temp"))
- )
- edit_tooltypes_diskobject(disk_object, line+5);
- else
- {
- }
- }
-
- check_edit_entries();
-
- FreeMem(file_name, MAXNAMELEN);
- }
- }
-
- void save_tooltypes(void)
- {
- if (disk_object)
- {
- char *file_name;
-
- if (file_name = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- char *old_def_tool;
- char **old_tooltypes;
- char *line;
- ULONG nr;
- char **new_tooltypes = NULL;
-
- /*** store actual data ***/
- old_def_tool = disk_object->do_DefaultTool;
- old_tooltypes = disk_object->do_ToolTypes;
-
- /*** new data ***/
- get(st_edit_default, MUIA_String_Contents, &line);
- disk_object->do_DefaultTool = line;
-
- /*** generate array of tooltypes ***/
- get(lv_edit, MUIA_List_Entries, &nr);
- if (new_tooltypes = AllocMem((nr+1) << 2, MEMF_ANY))
- {
- char **l;
- ULONG i;
-
- l = new_tooltypes;
- for (i=0; ; i++)
- {
- DoMethod(lv_edit, MUIM_List_GetEntry, i, &line);
-
- /*** last line ? ***/
- if (!line)
- break;
-
- *l++ = line;
- }
- /*** terminate array ***/
- *l = NULL;
-
- /*** new_data ***/
- disk_object->do_ToolTypes = new_tooltypes;
-
- /*** get entry ***/
- DoMethod(lv_tools, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &line);
-
- if (temp_dobj_flag)
- {
- PutDiskObject("T:WbMan_Temp", disk_object);
-
- sprintf(file_name, "copy T:WbMan_Temp.info SYS:WBStartup/%s.noinfo", line+5);
- Execute(file_name, NULL, NULL);
- }
- else
- {
- /*** get disk object ***/
- sprintf(file_name, "SYS:WBStartup/%s", line+5);
-
- PutDiskObject(file_name, disk_object);
- }
-
- FreeMem(new_tooltypes, (nr+1) << 2);
- }
-
- /*** restore data ***/
- disk_object->do_DefaultTool = old_def_tool;
- disk_object->do_ToolTypes = old_tooltypes;
-
- FreeMem(file_name, MAXNAMELEN);
- }
- }
- }
-
-
-
-
- /*** image-stuff ***/
-
- static UWORD wbman_sleep_img1_data[] = {
- 0x0003,0xc000,0x0000,0x0000,0x0004,0x4000,0x0000,0x0000,
- 0x0008,0x4000,0x0000,0x0000,0x0018,0x4de0,0x0000,0x0000,
- 0x0020,0x3210,0x0000,0x0000,0x0020,0x0008,0x0000,0x0000,
- 0x0020,0x0008,0x0000,0x0000,0x0020,0xf008,0x0000,0x0000,
- 0x0020,0x2788,0x0000,0x0000,0x0010,0x4108,0x0000,0x0000,
- 0x0010,0xf208,0x0000,0x0000,0x0008,0x0790,0x0000,0x0000,
- 0x0008,0x0020,0x0000,0x0000,0x003c,0x00c0,0x0000,0x0400,
- 0x0046,0x3f00,0x0000,0x0c00,0x0083,0xe000,0x0000,0x0c00,
- 0x0100,0x8004,0x0000,0x2c00,0x0101,0x001c,0x0000,0x2c00,
- 0x0386,0x007e,0x0000,0x2c00,0x04c8,0x01fe,0x0001,0x2c00,
- 0x08b0,0x07f8,0x0001,0x2c00,0x0500,0x1fe0,0x0001,0x2c00,
- 0x0200,0x7f80,0x0009,0x2c00,0x0001,0xfe00,0x0009,0x2c00,
- 0x0007,0xf8f8,0x2009,0x2c00,0x001f,0xe1cc,0x7009,0x2c00,
- 0x007f,0x8038,0x7009,0xcc00,0x01fe,0x0070,0x2009,0x0c00,
- 0x01f8,0x0000,0x0009,0x0c00,0x00e0,0x0070,0x700e,0x0c00,
- 0x0080,0x0000,0x0008,0x0c00,0x0000,0x0000,0x0008,0x0c00,
- 0x0000,0x3fff,0xfff0,0x0c00,0x0000,0x0000,0x0000,0x0c00,
- 0x7fff,0xffff,0xffff,0xfc00,0x0003,0xc000,0x0000,0x0000,
- 0x0007,0xc000,0x0000,0x0000,0x000f,0xc000,0x0000,0x0000,
- 0x001f,0xcde0,0x0000,0x0000,0x003f,0xfff0,0x0000,0x0000,
- 0x003f,0xfff8,0x0000,0x0000,0x003f,0xfff8,0x0000,0x0000,
- 0x003f,0x0ff8,0x0000,0x0000,0x003f,0xd878,0x0000,0x0000,
- 0x001f,0xbef8,0x0000,0x0000,0x001f,0x0df8,0x0000,0x0000,
- 0x000f,0xf870,0x0000,0x0000,0x000f,0xffe0,0x0000,0x0000,
- 0xffff,0xffff,0xffff,0xf800,0xd57f,0xff54,0x1555,0x5000,
- 0xd5ff,0xf5f8,0xcfff,0xd000,0xd5ff,0xd7e7,0xefff,0x9000,
- 0xd5ff,0x5713,0xcaa9,0x1000,0xd7ff,0x5e41,0x1ffe,0x1000,
- 0xd7fd,0x5902,0x7ffc,0x1000,0xdff5,0x4409,0x5548,0x1000,
- 0xd755,0x1027,0xfff0,0x1000,0xd754,0x409f,0xffe0,0x1000,
- 0xd551,0x022a,0xaa40,0x1000,0xd544,0x0802,0x8a80,0x1000,
- 0xd510,0x2222,0x8a80,0x9000,0xd440,0x8a82,0x8a80,0x3000,
- 0xd102,0x6a8a,0x8a80,0x5000,0xc209,0xeaaa,0xaa84,0x5000,
- 0xcf25,0xea8a,0x8a81,0x5000,0xdf95,0xf2aa,0xaa45,0x5000,
- 0xcc55,0xe000,0x0025,0x5000,0xc155,0xc000,0x000d,0x5000,
- 0xd555,0x5555,0x5555,0x5000,0x8000,0x0000,0x0000,0x0000,
-
- };
-
- static struct Image wbman_sleep_img1 = {
- 0x0000,0x0000,0x0036,0x0023,0x0002,
- &wbman_sleep_img1_data[0],
- 0x03,0x00,0x00000000,
- };
-
- static struct DiskObject wbman_sleep_dobj = {
- 0xe310,0x0001,
- 0x00000000,
- 0x00a9,0x00fa,0x0036,0x0024,0x0005,0x0001,0x95a5,
- (APTR)&wbman_sleep_img1,NULL,
- 0x00000000,0x00000000,0x00000000,
- 0x0064,
- 0x00000000,
- 0x0003,
- 0x00000000,0x00000000,0x000000a5,0x000000e5,
- 0x00000000,0x00000000,0x00001000,
- };
-
-
-
-
- /*** mui-stuff ***/
-
- /*** list hooks ***/
-
- SAVEDS ASM char *tools_list_confunc(
- REG(a0) struct Hook *hook,
- REG(a2) APTR mem_pool,
- REG(a1) struct FileInfoBlock *fib)
- {
- char active_pattern[14];
- char inactive_pattern[20];
-
- /*** tokenize pattern ***/
- ParsePatternNoCase("#?.info", active_pattern, 14);
- ParsePatternNoCase("#?.noinfo", inactive_pattern, 20);
-
- /*** check, only files ***/
- if (fib->fib_DirEntryType < 0)
- {
- char *file_name, *entry;
-
- if (entry = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- file_name = &fib->fib_FileName[0];
-
- /*** check if active ***/
- if (MatchPatternNoCase(active_pattern, file_name))
- {
- /*** cut the ".info" at end ***/
- *(file_name + strlen(file_name) - 5) = 0;
-
- /*** valid filename ? ***/
- if (check_tool_name(file_name))
- {
- sprintf(entry, "8" ePW eN "%s", file_name);
- return(entry);
- }
- }
-
- /*** or inactive ***/
- else if (MatchPatternNoCase(inactive_pattern, file_name))
- {
- /*** cut the ".noinfo" at end ***/
- *(file_name + strlen(file_name) - 7) = 0;
-
- /*** valid filename ? ***/
- if (check_tool_name(file_name))
- {
- sprintf(entry, "2" ePB eN "%s", file_name);
- return(entry);
- }
- }
-
- FreeMem(entry, MAXNAMELEN);
- }
- }
-
- /*** insert nothing ***/
- return(0);
- }
-
- static struct Hook tools_list_conhook = {
- {NULL, NULL},
- (void *)tools_list_confunc,
- NULL, NULL
- };
-
-
- SAVEDS ASM LONG tools_list_desfunc(
- REG(a0) struct Hook *hook,
- REG(a2) APTR mem_pool,
- REG(a1) char *line)
- {
- FreeMem(line, MAXNAMELEN);
-
- return(0);
- }
-
- static struct Hook tools_list_deshook = {
- {NULL, NULL},
- (void *)tools_list_desfunc,
- NULL, NULL
- };
-
-
- SAVEDS ASM LONG tools_list_dspfunc(
- REG(a0) struct Hook *hook,
- REG(a2) char **array,
- REG(a1) char *line)
- {
- *array = line+1;
- return(0);
- }
-
- static struct Hook tools_list_dsphook = {
- {NULL, NULL},
- (void *)tools_list_dspfunc,
- NULL, NULL
- };
-
-
- SAVEDS ASM LONG tools_list_cmpfunc(
- REG(a0) struct Hook *hook,
- REG(a2) char *line1,
- REG(a1) char *line2)
- {
- return(stricmp(line2+5, line1+5));
- }
-
- static struct Hook tools_list_cmphook = {
- {NULL, NULL},
- (void *)tools_list_cmpfunc,
- NULL, NULL
- };
-
-
-
- /*** arexx hooks ***/
-
- SAVEDS ASM APTR select_rxfunc(
- REG(a0) struct Hook *hook,
- REG(a2) Object *appl,
- REG(a1) ULONG *arg)
- {
- char *pattern;
-
- /*** pattern valid ? ***/
- if (pattern = (char *)*arg)
- {
- /*** clear list & select matching pattern ***/
- select_tools_list(MUIV_List_Select_Off);
- select_pattern_tools_list(pattern);
- }
-
- return(RETURN_OK);
- }
-
- static const struct Hook select_rxhook = {
- {NULL, NULL},
- (void *)select_rxfunc,
- NULL,NULL
- };
-
-
-
-
- /*** arexx list ***/
-
- static struct MUI_Command arexx_list[] =
- {
- {"rescan", MC_TEMPLATE_ID, ID_RESCAN, NULL},
-
- {"select", "PATTERN/A", 1, &select_rxhook},
-
- {"activate", MC_TEMPLATE_ID, ID_ACTIVATE, NULL},
- {"deactivate", MC_TEMPLATE_ID, ID_DEACTIVATE, NULL},
- {"toggle", MC_TEMPLATE_ID, ID_TOGGLE, NULL},
- {"restore", MC_TEMPLATE_ID, ID_RESTORE, NULL},
-
- {NULL, NULL, 0, NULL}
- };
-
-
-
- /*** menu ***/
-
- static const struct NewMenu menu_list[] =
- {
- { NM_TITLE, "Project", 0, 0, 0, 0 },
-
- { NM_ITEM, "About...", "?",0, 0, (APTR) ID_ABOUT },
- { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
- { NM_ITEM, "Rescan", "S",0, 0, (APTR) ID_RESCAN },
- { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
- { NM_ITEM, "Perform", "P",0, 0, (APTR) ID_PERFORM },
- { NM_ITEM, "Quit", "Q",0, 0, (APTR) ID_QUIT },
-
-
- { NM_TITLE, "Tools", 0, 0, 0, 0 },
-
- { NM_ITEM, "Select All", "A",0, 0, (APTR) ID_SELECT_ALL },
- { NM_ITEM, "Select None", "N",0, 0, (APTR) ID_SELECT_NONE },
- { NM_ITEM, "Select Pattern", "E",0, 0, (APTR) ID_SELECT_PATTERN },
- { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
- { NM_ITEM, "Activate", "V",0, 0, (APTR) ID_ACTIVATE },
- { NM_ITEM, "Deactivate", "D",0, 0, (APTR) ID_DEACTIVATE },
- { NM_ITEM, "Toggle", "T",0, 0, (APTR) ID_TOGGLE },
- { NM_ITEM, "Restore", "R",0, 0, (APTR) ID_RESTORE },
- { NM_ITEM, NM_BARLABEL, 0, 0, 0, 0 },
- { NM_ITEM, "Edit Tooltypes", "O",0, 0, (APTR) ID_EDIT },
-
-
- { NM_END, NULL, 0, 0, 0, 0 },
- };
-
-
-
-
- /*** main ***/
-
- int main(int argc, char *argv[])
- {
- /*** init ***/
- BOOL not_end = TRUE;
-
- init();
-
-
- /*** create mui-application ***/
- app = ApplicationObject,
- MUIA_Application_Title, "WbMan",
- MUIA_Application_Version, "$VER: WbMan 0.42 (27.8.93)",
- MUIA_Application_Copyright, "© 1993 by kMel, Klaus Melchior",
- MUIA_Application_Author, "Klaus Melchior",
- MUIA_Application_Description, "Manages the WBStartup",
- MUIA_Application_Base, "WBMAN",
- MUIA_Application_Menu, menu_list,
- MUIA_Application_Commands, arexx_list,
- MUIA_Application_SingleTask, TRUE,
- MUIA_Application_DiskObject, &wbman_sleep_dobj,
-
- SubWindow, wi_main = WindowObject,
- MUIA_Window_ID, MAKE_ID('M','A','I','N'),
- MUIA_Window_Title, "WbMan",
- WindowContents, VGroup,
- Child, VGroup,
- Child, tx_info = TextObject,
- TextFrame,
- MUIA_Background, MUII_TextBack,
- End,
- Child, VGroup,
- GroupSpacing(0),
- Child, lv_tools = ListviewObject,
- MUIA_Listview_MultiSelect, TRUE,
- MUIA_Listview_DoubleClick, TRUE,
- MUIA_Listview_List, ListObject,
- InputListFrame,
- MUIA_List_ConstructHook, &tools_list_conhook,
- MUIA_List_DestructHook, &tools_list_deshook,
- MUIA_List_CompareHook, &tools_list_cmphook,
- MUIA_List_DisplayHook, &tools_list_dsphook,
- End,
- End,
- Child, HGroup,
- GroupSpacing(0),
- Child, bt_activate = SimpleButton("_Activate"),
- Child, bt_toggle = SimpleButton("_Toggle"),
- Child, bt_deactivate = SimpleButton("_Deactivate"),
- End,
- Child, HGroup,
- GroupSpacing(0),
- Child, bt_edit = SimpleButton("_Edit Tooltypes"),
- End,
- End,
- End,
- Child, VSpace(2),
- Child, HGroup,
- MUIA_Group_SameSize, TRUE,
- Child, bt_perform = SimpleButton("_Perform"),
- Child, HSpace(0),
- Child, bt_quit = SimpleButton("_Quit"),
- End,
- End,
- End,
- End;
-
-
- /*** application failed ? ***/
- if (!app)
- fail(app, "Creating application failed !");
-
- /*** connections & cycle ***/
- DoMethod(wi_main, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, ID_QUIT );
-
- DoMethod(bt_activate, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_ACTIVATE );
- DoMethod(bt_toggle, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_TOGGLE );
- DoMethod(bt_deactivate, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_DEACTIVATE );
- DoMethod(bt_edit, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_EDIT );
-
- DoMethod(bt_perform, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_PERFORM );
- DoMethod(bt_quit, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, ID_QUIT );
-
- DoMethod(lv_tools, MUIM_Notify, MUIA_Listview_DoubleClick, TRUE, app, 2, MUIM_Application_ReturnID, ID_EDIT );
- DoMethod(lv_tools, MUIM_Notify, MUIA_Listview_SelectChange, TRUE, app, 2, MUIM_Application_ReturnID, ID_LV_ACTIVE );
-
- DoMethod(lv_tools, MUIM_Notify, MUIA_List_Active, MUIV_EveryTime,
- app, 2,
- MUIM_Application_ReturnID, ID_LV_ACTIVE);
-
- DoMethod(wi_main, MUIM_Window_SetCycleChain,
- lv_tools,
- bt_activate, bt_toggle, bt_deactivate,
- bt_perform, bt_quit,
- NULL);
-
-
- /*** open window ***/
- set(wi_main, MUIA_Window_Open, TRUE);
- set(wi_main, MUIA_Window_DefaultObject, lv_tools);
-
-
- /*** get files ***/
- rescan_tools_list();
- count_tools_list();
-
- /*** set cursor on listview & check disable gadget ***/
- check_entries();
-
- /*** main-loop ***/
- while (not_end)
- {
- ULONG signal, id;
- ULONG pos;
- char *line;
-
- switch (id = DoMethod(app, MUIM_Application_Input, &signal))
- {
- case ID_ABOUT:
- MUI_Request(app, wi_main, 0, NULL, "OK",
- eC ePW "WbMan\n\n"
- ePB "WbMan 0.41 (13.8.93)\n"
- "Copyright 1993 by kMel, Klaus Melchior.\n"
- "\nThis is a MUI-Application.\n"
- "MUI is copyrighted by Stefan Stuntz.",
- TAG_END);
- break;
-
- case MUIV_Application_ReturnID_Quit:
- case ID_QUIT:
- not_end = FALSE;
- break;
-
- case ID_PERFORM:
- rename_tools_list();
- not_end = FALSE;
- break;
-
-
- case ID_EDIT:
- if (!edit_window_open)
- {
- edit_window_open = TRUE;
-
- /*** main-window must sleep now ***/
- set(wi_main, MUIA_Window_Sleep, TRUE);
-
- edit_tooltypes_entry();
- }
- break;
-
- case ID_LV_ACTIVE:
- check_entries();
- break;
-
-
- case ID_RESCAN:
- rescan_tools_list();
- check_entries();
- count_tools_list();
- break;
-
- case ID_ACTIVATE:
- change_tools_list(MODE_ACTIVATE);
- check_entries();
- count_tools_list();
- break;
-
- case ID_DEACTIVATE:
- change_tools_list(MODE_DEACTIVATE);
- check_entries();
- count_tools_list();
- break;
-
- case ID_TOGGLE:
- change_tools_list(MODE_TOGGLE);
- check_entries();
- count_tools_list();
- break;
-
- case ID_RESTORE:
- change_tools_list(MODE_RESTORE);
- check_entries();
- count_tools_list();
- break;
-
-
- /*** pattern window ***/
-
- case ID_SELECT_ALL:
- select_tools_list(MUIV_List_Select_On);
- check_entries();
- break;
-
- case ID_SELECT_NONE:
- select_tools_list(MUIV_List_Select_Off);
- check_entries();
- break;
-
- case ID_SELECT_PATTERN:
- if (!string_request_open)
- {
- string_request_open = TRUE;
-
- /*** main-window must sleep now ***/
- set(wi_main, MUIA_Window_Sleep, TRUE);
-
- open_string_request("Pattern", 127);
- }
- break;
-
-
- case ID_STRING_OK:
- /*** get pattern ***/
- get(st_string, MUIA_String_Contents, &line);
-
- /*** clear list & select matching pattern ***/
- select_tools_list(MUIV_List_Select_Off);
- select_pattern_tools_list(line);
-
- close_string_request();
- string_request_open = FALSE;
- check_entries();
- break;
-
- case ID_STRING_CANCEL:
- close_string_request();
- string_request_open = FALSE;
- break;
-
-
-
- /*** edit window ***/
-
- case ID_EDIT_LV_ACTIVE:
- /*** copy active line into string ***/
- DoMethod(lv_edit, MUIM_List_GetEntry, MUIV_List_GetEntry_Active, &line);
- set(st_edit_string, MUIA_String_Contents, line);
- check_edit_entries();
- set(wi_edit, MUIA_Window_ActiveObject, st_edit_string);
- break;
-
-
- case ID_EDIT_NEW:
- line = ">> new <<";
-
- /*** insert at cursor-position ***/
- get(lv_edit, MUIA_List_Active, &pos);
- if (pos == -1)
- pos = 0;
- DoMethod(lv_edit, MUIM_List_Insert, &line, 1, pos);
- set(lv_edit, MUIA_List_Active, pos);
-
- check_edit_entries();
- break;
-
- case ID_EDIT_COPY:
- get(lv_edit, MUIA_List_Active, &pos);
- DoMethod(lv_edit, MUIM_List_GetEntry, pos, &line);
- DoMethod(lv_edit, MUIM_List_Insert, &line, 1, pos);
- set(lv_edit, MUIA_List_Active, pos);
- break;
-
- case ID_EDIT_REMOVE:
- get(lv_edit, MUIA_List_Active, &pos);
- DoMethod(lv_edit, MUIM_List_Remove, pos);
-
- check_edit_entries();
- break;
-
- case ID_EDIT_ACTIVATE:
- set(lv_edit, MUIA_List_Quiet, TRUE);
- get(lv_edit, MUIA_List_Active, &pos);
- DoMethod(lv_edit, MUIM_List_Remove, pos);
- get(st_edit_string, MUIA_String_Contents, &line);
-
- {
- char *new_line, *insert_line;
-
- new_line = strdup(line);
- if (new_line)
- {
- *(new_line + strlen(new_line) - 1) = 0;
- insert_line = new_line + 1;
- DoMethod(lv_edit, MUIM_List_Insert, &insert_line, 1, pos);
- free(new_line);
- }
-
- }
-
- set(lv_edit, MUIA_List_Quiet, FALSE);
- set(lv_edit, MUIA_List_Active, pos);
- check_edit_entries();
- break;
-
- case ID_EDIT_DEACTIVATE:
- set(lv_edit, MUIA_List_Quiet, TRUE);
- get(lv_edit, MUIA_List_Active, &pos);
- DoMethod(lv_edit, MUIM_List_Remove, pos);
- get(st_edit_string, MUIA_String_Contents, &line);
-
- {
- char *insert_line;
-
- if (insert_line = AllocMem(MAXNAMELEN, MEMF_ANY))
- {
- sprintf(insert_line, "(%s)", line);
- DoMethod(lv_edit, MUIM_List_Insert, &insert_line, 1, pos);
-
- FreeMem(insert_line, MAXNAMELEN);
- }
- }
-
- set(lv_edit, MUIA_List_Quiet, FALSE);
- set(lv_edit, MUIA_List_Active, pos);
- check_edit_entries();
- break;
-
-
- case ID_EDIT_ST_READY:
- set(lv_edit, MUIA_List_Quiet, TRUE);
- get(lv_edit, MUIA_List_Active, &pos);
- DoMethod(lv_edit, MUIM_List_Remove, pos);
- get(st_edit_string, MUIA_String_Contents, &line);
- DoMethod(lv_edit, MUIM_List_Insert, &line, 1, pos);
- set(lv_edit, MUIA_List_Quiet, FALSE);
- set(lv_edit, MUIA_List_Active, pos);
- break;
-
-
- case ID_EDIT_SAVE:
- save_tooltypes();
- close_edit_window();
- edit_window_open = FALSE;
- break;
-
- case ID_EDIT_CANCEL:
- close_edit_window();
- edit_window_open = FALSE;
- break;
-
-
- /*** default ***/
-
- default:
- if (id)
- printf("ID: %d = %08lx\n", id, id);
- break;
- }
-
- if (not_end && signal)
- Wait(signal);
- }
-
- fail(app, NULL);
- }
-
-
-