/**************/ /* dadsave.c */ /****************************************************************************** PROGRAM: dadsave.c Windows: Win 3.1 & WIN32 PURPOSE: Tallettaa DaDna tiedostojen nimiä, jotta niitä voidaan sitten helposti pudotella muihin ohjelmiin. .INI tiedostossa on säännöt siitä miten korvataan pudotuksessa jne. INI-tiedostoa etsitään järjestyksessä: 1) oletushakemisto 2) windows-hakemisto 3) hakemisto josta dadsave.exe löytyi Editor: Vesa Lappalainen 31.7.1994 Optiot: ======= -i= INI-tiedoston nimenä käytetään 1) jos on -i=OMA.INI niin tätä nimeä 2) muuten dadsave.ini INI-tiedosto: ============= [General] IniEditor=notepad - millä editoidaan optioita Language=0 - käytössä oleva kieli Translate=C:\WINDOWS\VLWINAPP\DADSAVE\SORSAT\DADSAVE.tra - käännöstiedoston nimi [POS] - ikkunan paikka ja koko x=711 y=307 minmax=1 leveys=307 korkeus=219 [Clipboard] - pudotukseen liittyviä optioita small=1 - kaikki kirjaimet pieneksi delbegin=1 - tuhotaan alusta tyhjät delblanks=1 - tuhotaan kaikki tyhjät dublicate=0 - ei sallita listaan dublikaatteja comments=-=( - mitkä merkit tulkitaan kom. alkumerk. separators=;, - mitkä nimilistan erottimiksi del1=/* - mitkä jonot poistetaan aina del2=** del3=// del4=\t change1=^ALI - mitkä jonot muutetaan ja miksi to1=E:\\KURSSIT\\WINOHJ\\ALI ^ tarkoittaa jonon alkua change2=^LIB to2=E:\\KURSSIT\\WINOHJ\\DLL [DAD] - Drag and drop -optiot Mode=0 - ks. paina o kun drag menossa Enter=1 tai ks. Options/DaD options Position=0 Active=0 SaveWin=0 ClipMode=3 droptime=0 [OldNames] - aiemmin käytettyjen tiedostojen nimet old1=c:\windows\vlwinapp\dadsave\sorsat\ali.dad old2=c:\windows\vlwinapp\dadsave\sorsat\tyhja.dad old3= old4= old5= open= - viimeksi käytössä olleen tied. nimi oldfile=1 - aloitetaan aina ed.kerran tiedostolla [FONT-DaDlist-0] - käytössä olevan fontin tiedot ... (koodissa merkitty f:llä fontin vaihdon takia ohjelmaan tehdyt lisäykset --------------------------------------------------------------------------- PROJECT: dadsave.c dadsave.rc dadsave.def tiedleik.c ALI\tabhand.c ALI\savepos.c ALI\mjonot.c ALI\mdialog.c ALI\dropfile.c ALI\clipboar.c ALI\filename.c ALI\listbox.c ALI\optdlg.c ALI\ininame.c ALI\tmdialog.c ALI\transdlg.c ALI\language.c ALI\fontti.c Historia: Versio 10.8.1994 + korjattu WM_INITDIALOG-käsittely Versio 14.8.1994 + Win32 toiminta korjattu - read => _lread - listboxien toiminta (windowsx.h:n makrojen käyttö) Versio 16.8.1994 + pudotuksen vastaanotto myös pienenä + lisää -.INI -optioita Versio 1.10.1994 + \t tyylisten C-merkkien tunnistus => voidaan poisaa mm. TABeja => muutettavat hakemistot kirjoitettava C:\\ali\\... + Drop voidaan keskeyttää ESCillä Versio 18.8.1995 + optiodialogi + ini-tiedoston käsittelyä muutettu Versio 21.8.1995 + 2-kielisyys Versio: 28.8.1995 + fontin vaihto Versio: 3.9.1995 + dropfile.c:n vikoja korjattu Korjattavaa: - ??? ******************************************************************************/ #define VERSION "0.64 3.9.1995/vl" #include #include #include #include #include #include #include "tmdialog.h" #include "clipboard.h" #include "tiedleik.h" #include "listbox.h" #include "fontti.h" /* f */ #include "dadsave.h" /*****************************************************************************/ TblClassDlgMAIN("DaDWClass","ikoni","Menu","DaDSave",MsgTbl); /*****************************************************************************/ /*****************************************************************************/ static tVersionInfo Version = {IDC_VERSION,"Version "mPLATFORM":\r\n"VERSION}; static const char *dadini; static int dadIDs[] = { IDC_DADLIST,0,0 }; /* f */ static tFontChange FontChange = {"DaDlist",dadIDs, NULL}; /* f */ /*****************************************************************************/ static int DaDClose(HWND hWnd) { poista_fontit(hWnd,dadini,&FontChange); /* f */ return tmDoClose(hWnd); } /*****************************************************************************/ /* E V E N T S : */ /****** FILE EVENTS: *********************************************************/ FILE_EVENTS(File,DaDClose(msg->hWnd),dadini); /* #man# */ /****** EDIT EVENTS: *********************************************************/ static EVENT WM_command_CM_EDIT_DELETE(tMSGParam *msg) { Changed(&File); return delete_from_listbox(msg->hWnd,IDC_DADLIST,SELECTED); } static EVENT WM_command_CM_EDIT_CLEAR_ALL(tMSGParam *msg) { Changed(&File); return delete_from_listbox(msg->hWnd,IDC_DADLIST,ALL); } static EVENT WM_command_CM_EDIT_DROP_ALL(tMSGParam *msg) { select_all_from_listbox(msg->hWnd,IDC_DADLIST); return DropListBoxFiles(msg->hWnd,IDC_DADLIST,""); } static EVENT WM_command_CM_EDIT_COPY(tMSGParam *msg) { return data_to_clipboard(msg->hWnd,IDC_DADLIST); } static EVENT WM_command_CM_EDIT_CUT(tMSGParam *msg) { data_to_clipboard(msg->hWnd,IDC_DADLIST); return SEND_WM_COMMAND(msg->hWnd,CM_EDIT_DELETE,0,0); } static EVENT WM_command_CM_EDIT_PASTE(tMSGParam *msg) { Changed(&File); return clipboard_to_data(msg->hWnd,IDC_DADLIST); } static EVENT WM_command_CM_EDIT_SELECT_ALL(tMSGParam *msg) { return select_all_from_listbox(msg->hWnd,IDC_DADLIST); } /****** OTHER EVENTS: ********************************************************/ static EVENT WM_begindrag(tMSGParam *msg) { return DropListBoxFiles(msg->hWnd,IDC_DADLIST,""); } static EVENT WM_dropfiles(tMSGParam *msg) { Changed(&File); return DropFilesToListBox((HDROP)(msg->wParam),msg->hWnd,IDC_DADLIST, DaDOpt.small*DAD_SMALL | DaDOpt.dublicate*DAD_DUB); } static EVENT WM_initdialog(tMSGParam *msg) { dadini = tmDoInit(msg->hWnd,&File); read_clp_options(dadini); SetNotifyDrag(GetDlgItem(msg->hWnd,IDC_DADLIST)); alusta_fontit(msg->hWnd,dadini,&FontChange); /* f */ return 0; } static EVENT WM_command_CM_OPTIONS_FONT(tMSGParam *msg) /* f */ { return vaihda_fontit(msg->hWnd,&FontChange); } /*****************************************************************************/ static tMSGEntry MsgTbl[] = { EV_HANDLE_WM_DESTROY, EV_HANDLE_CM_FILE, EV_HANDLE_TWM_COMMAND_CM_HELPABOUT(&Version), EV_HANDLE_WM_COMMAND_OPTIONS_DAD, EV_HANDLE_WM_COMMAND_OPTIONS_LANGUAGE(NULL), EV_HANDLE_WM_COMMAND_EDITOPTIONS(CM_OPTIONS_DADSAVE), { WM_LBUTTONDOWN, DoC, DoC , WM_begindrag }, { WM_COMMAND , CM_EDIT_DELETE , DoC , WM_command_CM_EDIT_DELETE }, /*a*/ { WM_COMMAND , CM_EDIT_CLEAR_ALL , DoC , WM_command_CM_EDIT_CLEAR_ALL }, /*a*/ { WM_COMMAND , CM_EDIT_DROP_ALL , DoC , WM_command_CM_EDIT_DROP_ALL }, /*a*/ { WM_COMMAND , CM_EDIT_COPY , DoC , WM_command_CM_EDIT_COPY }, /*a*/ { WM_COMMAND , CM_EDIT_CUT , DoC , WM_command_CM_EDIT_CUT }, /*a*/ { WM_COMMAND , CM_EDIT_PASTE , DoC , WM_command_CM_EDIT_PASTE }, /*a*/ { WM_COMMAND , CM_EDIT_SELECT_ALL , DoC , WM_command_CM_EDIT_SELECT_ALL }, /*a*/ { WM_BEGINDRAG , DoC , DoC , WM_begindrag }, /*a*/ { WM_DROPFILES , DoC , DoC , WM_dropfiles }, /*a*/ { WM_INITDIALOG , DoC , DoC , WM_initdialog }, /*a*/ { WM_COMMAND , CM_OPTIONS_FONT , DoC , WM_command_CM_OPTIONS_FONT }, /*a*/ { 0 } };