Maybe, if using GTK ... but I like how Qt multi platform environment. I have not decided about this.
2009/2/23 Massimo Belgrano <mbelgr...@deltain.it>: > Look very good > Wich path do you think is possible for made simular tool in harbour in > multiplatform? > > 2009/2/23 Vailton Renato <vail...@gmail.com>: >> About GUI Wrapper, look at mymake and see if he can inspire you or >> even help in some part on screenshots, options, etc. >> >> This tool was developed in Delphi and supports Harbor & xHarbour with >> BCC. Has translated into Portuguese, English, Spanish and Italian... >> The download link is http://sqllib.com.br/v4/index.php?artigo=MyMake >> >> 2009/2/22 Massimo Belgrano <mbelgr...@deltain.it>: >>> Here is my first template for a UI version console >>> Select one on more prg with enter and compile and run with f5 >>> Particular useful running in harbour\test >>> It Generate also project file for xmate >>> now i want : >>> -support also hrb >>> -Manage also -GUI,-MT >>> -Give Capability to edit source selected with parametrised editor >>> -support more than 15 character in file name >>> - try linux >>> -Not exit but remain in memory after running the sample >>> - Give capability compile a source from clibpoard useful for compile >>> sample found in web >>> >>> >>> >>> Can my little work be part of harbour (example)? >>> This use on old path based on achoice emulating norton commanter look and >>> feel >>> Have any other multiplatform suggestion for make a Multiple FIle >>> Select on a file system? >>> >>> >>> >>> /* >>> * $Id: hbm.prg >>> */ >>> >>> /* >>> * xHarbour Project source code: >>> * xHarbour Template for hbmk 2 >>> * >>> * Copyright 2000 Massimo Belgrano >>> * www - http://www.xharbour.org >>> */ >>> #include 'DIRECTRY.CH' >>> #include "INKEY.CH" >>> >>> function main >>> LOCAL qualedir ,QUALEPROG:=1 >>> LOCAL FILECHOICE:={} >>> set func 2 to CHR(K_CTRL_W) >>> SET func 5 TO CHR(K_LEFT) >>> CLS >>> QUALEDIR="\"+CURDIR() >>> DO WHILE .T. >>> @ 0,54 CLEAR TO 23,79 >>> @ 0,54 TO 23,79 >>> FOR A=1 TO LEN(FILECHOICE) >>> @ 0+A,55 SAY RIGHT(FILECHOICE[A],20) >>> NEXT A >>> QUALEPROG=SELECT_FILE(filechoice,@QUALEDIR,"*.PRG",1,1,22,50) >>> @ 4,5 say qualedir >>> IF EMPTY(QUALEPROG) >>> IF LASTKEY()=K_RIGHT >>> SELECT_ELEMENT(FILECHOICE,1,55,22,78) >>> ELSE >>> EXIT >>> ENDIF >>> ENDIF >>> AADD(FILECHOICE,CURDRIVE()+":"+QUALEDIR+"\"+QUALEPROG) >>> ENDDO >>> if lastkey()<>27 >>> IF LEN(FILECHOICE)>0 >>> cls >>> CREA_XMATE(filechoice) >>> X_SHELL="HBMK2 " >>> FOR A=1 TO LEN(FILECHOICE) >>> X_SHELL=X_SHELL+FILECHOICE[A] +" " >>> NEXT A >>> X_SHELL=X_SHELL+"-RUN" >>> RUN(X_SHELL) >>> ENDIF >>> ENDIF >>> return >>> >>> FUNCTION SELECT_ELEMENT(FILECHOICE,X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA) >>> LOCAL X_POS >>> if len(filechoice)=0 >>> return >>> endif >>> do while .t. >>> @ x_BASSO+2,1 SAY "Press enter to remove element to list" >>> @ X_ALTO-1, X_SINISTRA -1 CLEAR to X_BASSO +1, X_DESTRA +1 >>> @ X_ALTO-1, X_SINISTRA -1 to X_BASSO +1, X_DESTRA +1 >>> X_POS=ACHOICE(X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA,FILECHOICE,.T.) >>> IF X_POS>1 >>> ADEL(FILECHOICE,X_POS) >>> else >>> exit >>> ENDIF >>> enddo >>> RETURN >>> >>> FUNCTION >>> SELECT_FILE(filechoice,X_DIRSPEC,X_WILCARD,X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA) >>> LOCAL ADIRECTORY := {}, NITEM := 0, X_RET_VAL := .T. >>> LOCAL NUM_ARGOMENTI := 0, CFILESTRING := "" >>> LOCAL WIN_SELEZ >>> LOCAL X_ELEM_SEL:=0 >>> SAVE SCREEN TO WIN_SELEZ >>> X_DIRSPEC=IIF(VALTYPE(X_DIRSPEC)="C",X_DIRSPEC,"\"+CURDIR()) >>> X_ALTO=IIF(VALTYPE(X_ALTO)="N",X_ALTO,5) >>> X_SINISTRA=IIF(VALTYPE(X_SINISTRA)="N",X_SINISTRA,5) >>> X_BASSO=IIF(VALTYPE(X_BASSO)="N",X_BASSO,22) >>> X_DESTRA=IIF(VALTYPE(X_DESTRA)="N",X_DESTRA,40) >>> DO WHILE .T. >>> @ X_BASSO+2,1 say "Press Enter add program to compile >>> "+iif(len(filechoice)>0,"F5 compile and run Left Modify ","") +"Esc >>> to Exit" >>> @ X_ALTO-1, X_SINISTRA -1 CLEAR to X_BASSO +1, X_DESTRA +1 >>> @ X_ALTO-1, X_SINISTRA -1 to X_BASSO +1, X_DESTRA +1 >>> X_DIRECTORY=X_DIRSPEC+"\*.*" >>> // carica una file list con le informazioni della directory >>> ADIRECTORY := DIRECTORY( x_directory, "D" ) >>> NUM_ARGOMENTI := IF( VALTYPE( aDirectory ) != "A", 0, LEN( aDirectory >>> ) ) >>> aFileList := {} // Cancella la vecchia lista >>> ASORT( aDirectory,,, { | x, y | X[F_NAME] < Y[F_NAME] } ) >>> // ORDINO LA DIRECTORY >>> // X[F_NAME],"B"+X[F_NAME]) < >>> IIF(Y[F_ATTR]="D","A"+Y[F_NAME],"B"+Y[F_NAME]) } ) >>> // COMPONGO LA STRINGA CHE VERRA VISUALIZZATA NELLA ACHOICE >>> FOR NITEM := 1 TO NUM_ARGOMENTI >>> IF ADIRECTORY[NITEM,F_ATTR ]=="D" >>> AADD( AFILELIST, PADR( ADIRECTORY[ NITEM, F_NAME ], 15 ) + ; >>> " <dir>"+ " " + ; >>> DTOC( aDirectory[ nItem, F_DATE ] ) + " " + ; >>> SUBSTR( aDirectory[ nItem, F_TIME ], 1, 5) + " " + ; >>> SUBSTR( aDirectory[ nItem, F_ATTR ], 1, 4 ) + " " ) >>> ENDIF >>> NEXT >>> X_DIRECTORY=X_DIRSPEC+"\"+X_WILCARD >>> ADIRECTORY := DIRECTORY( x_directory, "D" ) >>> NUM_ARGOMENTI := IF( VALTYPE( aDirectory ) != "A", 0, LEN( aDirectory ) >>> ) >>> ASORT( aDirectory,,, { | x, y | X[F_NAME] < Y[F_NAME] } ) >>> // COMPONGO LA STRINGA CHE VERRA VISUALIZZATA NELLA ACHOICE >>> FOR NITEM := 1 TO NUM_ARGOMENTI >>> IF ADIRECTORY[NITEM,F_ATTR ]<>"D" >>> AADD( AFILELIST, PADR( ADIRECTORY[ NITEM, F_NAME ], 15 ) + ; >>> STR( aDirectory[ nItem, F_SIZE ], 8 )+ " " + ; >>> DTOC( aDirectory[ nItem, F_DATE ] ) + " " + ; >>> SUBSTR( aDirectory[ nItem, F_TIME ], 1, 5) + " " + ; >>> SUBSTR( aDirectory[ nItem, F_ATTR ], 1, 4 ) + " " ) >>> ENDIF >>> NEXT >>> >>> X_ELEM_SEL=ACHOICE(X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA,AFILELIST,.T.,,X_ELEM_SEL) >>> IF X_ELEM_SEL=0 >>> X_RET_VAL="" >>> EXIT >>> ENDIF >>> X_FILE_SEL=AFILELIST[X_ELEM_SEL] >>> IF SUBSTR(X_FILE_SEL,16,8)<>" <dir>" >>> X_RET_VAL=SUBSTR(X_FILE_SEL,1,15) >>> EXIT >>> ELSE >>> IF SUBSTR(X_FILE_SEL,1,1)="." && SALGO DI UNA DIRECTORY >>> X_DIRSPEC=SUBSTR(X_DIRSPEC,1,RAT("\",X_DIRSPEC)-1) >>> ELSE >>> X_DIRSPEC=X_DIRSPEC+"\"+ALLTRIM(SUBSTR(X_FILE_SEL,1,15)) >>> ENDIF >>> ENDIF >>> ENDDO >>> RESTORE SCREEN FROM WIN_SELEZ >>> RETURN(X_RET_VAL) >>> >>> FUNCTION CREA_XMATE(filechoice) >>> local a_xmate:={},A >>> LOCAL X_LOG,X_MATE >>> AADD(A_XMATE,"[Version]") >>> AADD(A_XMATE,"Type=xMate") >>> AADD(A_XMATE,"Number=1.15") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[Info]") >>> AADD(A_XMATE,"Type=Executable") >>> AADD(A_XMATE,"Architecture=harbour") >>> AADD(A_XMATE,"Include=") >>> AADD(A_XMATE,"Define=") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[xMate]") >>> AADD(A_XMATE,"Create Map/List File=No") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[Project]") >>> AADD(A_XMATE,"Run=") >>> AADD(A_XMATE,"Params=") >>> AADD(A_XMATE,"Final Path=%HOME%") >>> AADD(A_XMATE,"Maintain LNK=Yes") >>> AADD(A_XMATE,"Default Type=1") >>> AADD(A_XMATE,"Error log=") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[Data Path]") >>> AADD(A_XMATE,"Dbf=") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[Editor]") >>> FOR A=1 TO LEN(FILECHOICE) >>> AADD(A_XMATE,ALLTRIM(FILECHOICE[A])+"="+STR(A)+",N,N") >>> NEXT >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"") >>> AADD(A_XMATE,"[Files]") >>> FOR A=1 TO LEN(FILECHOICE) >>> AADD(A_XMATE,ALLTRIM(FILECHOICE[A])+"="+STR(A)+",.F.,0,0,") >>> NEXT >>> xprjmate=aLltrim(filechoice[1]) >>> xprjmate=substr(XPRJMATE,1,len(xPRJmate)-4) +".xhp" >>> if .not. file(XPRJMATE) >>> X_LOG=FCREATE(XPRJMATE) >>> FOR a=1 to len(A_XMATE) >>> FWRITE(X_LOG,A_XMATE[a]+CHR(13)+CHR(10)) >>> NEXT >>> >>> FCLOSE(X_LOG) >>> ENDIF >>> * returm >>> >>> */ >>> >>> >>> >>> 2009/2/16 Viktor Szakáts <harbour...@syenar.hu>: >>>>> I have still one suggestion >>>>> Having a simple interactive mode >>>>> launching hbmk without parameter see a list of prg,hbp,c,rc >>>>> select with space one or more and press button compile >>>>> Simple and easy but will be a bridge between people command line >>>>> driven and gui driven >>>> >>>> Nope sorry, I've meant this is a pure command line tool. >>>> In fact all our supplied tools are command line only, and >>>> this shouldn't be an exception. >>>> If you want CUI/GUI, a wrapper program is the best solution. This >>>> could simply create a hbmk command line after presenting >>>> all the options on the screen for the user and either launch it >>>> or save it as .hbm (similar to hbmake). Can be independently >>>> developed from hbmk, and if it's good and portable (which now >>>> means CUI), we can also include it as part of the Harbour package. >>>> >>> _______________________________________________ >>> Harbour mailing list >>> Harbour@harbour-project.org >>> http://lists.harbour-project.org/mailman/listinfo/harbour >>> >> >> >> >> -- >> Vailton Renato >> SQL LIB, MyMake & xDev Developer >> _______________________________________________ >> Harbour mailing list >> Harbour@harbour-project.org >> http://lists.harbour-project.org/mailman/listinfo/harbour >> > > > > -- > Massimo Belgrano > _______________________________________________ > Harbour mailing list > Harbour@harbour-project.org > http://lists.harbour-project.org/mailman/listinfo/harbour > -- Vailton Renato SQL LIB, MyMake & xDev Developer _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour