hmg-svncommit Mailing List for HMG (Page 3)
Brought to you by:
roblez
You can subscribe to this list here.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(44) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
(7) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ri...@us...> - 2011-12-07 10:51:48
|
Revision: 842 http://hmg.svn.sourceforge.net/hmg/?rev=842&view=rev Author: ricciz Date: 2011-12-07 10:51:41 +0000 (Wed, 07 Dec 2011) Log Message: ----------- Modified Paths: -------------- Changelog source/printer.prg Added Paths: ----------- samples/print/demo_HMG.prg samples/print/demo_OOP.prg Modified: Changelog =================================================================== --- Changelog 2011-12-05 12:29:43 UTC (rev 841) +++ Changelog 2011-12-07 10:51:41 UTC (rev 842) @@ -16,7 +16,14 @@ The license applies to all entries newer than 2009-04-28. */ -2011-12-12 13:30 UTC+0100 Ricci Zepmeusel ( ricci at conzoft.de ) +2011-12-07 11:50 UTC+0100 Ricci Zepmeusel ( ricci at conzoft.de ) + * source/printer.prg + ! printer class rebuild for getting it working correct + + samples/print/demo_HMG.prg + + samples/print/demo_OOP.prg + ! Oneliners (Semi-OOP) did not exist yet + +2011-12-05 13:30 UTC+0100 Ricci Zepmeusel ( ricci at conzoft.de ) * source/grid.prg ! GRID now accept flat (1D) arrays again Added: samples/print/demo_HMG.prg =================================================================== --- samples/print/demo_HMG.prg (rev 0) +++ samples/print/demo_HMG.prg 2011-12-07 10:51:41 UTC (rev 842) @@ -0,0 +1,94 @@ +/* + * $Id: demo_3.prg 760 2011-10-21 12:01:51Z l3wonsf $ +*/ + +/* + * HMG 4 demo +*/ + +#include "hmg.ch" + +FUNCTION Main() + + LOCAL oWindow + + HbQt_ErrorSys() + + DEFINE MAINWINDOW oWindow + Row 10 + Col 10 + Width 200 + Height 200 + Title 'HMG4 printing demo' + OnInit oWindow.Center() + + @ 80 , 60 Button Button1 ; + Caption 'Print!' ; + On Click Button1Click() + + END WINDOW + + ACTIVATE WINDOW oWindow + + RETURN NIL + +/*----------------------------------------------------------------------*/ + +FUNCTION Button1Click() + + LOCAL oPrinter , lResult + +// SELECT PRINTER DEFAULT TO lResult + SELECT PRINTER DEFAULT TO lResult PREVIEW +// SELECT PRINTER DIALOG TO lResult +// SELECT PRINTER DIALOG TO lResult PREVIEW +// SELECT PRINTER "test.pdf" TO lResult // the PDF print of Qt is ugly ! + + IF !lResult + MsgStop( 'Print cancelled by the User' ) + RETURN NIL + ENDIF + + START PRINTDOC + + START PRINTPAGE + + @ 20, 20 PRINT 'Hello HMG.4!' Font 'Courier New' Size 36 + + @ 50, 10 PRINT LINE TO 50, 200 COLOR { 0, 255, 0 } + + @ 70, 10 PRINT RECTANGLE TO 100, 200 COLOR { 0, 0, 255 } + + @ 120, 10 PRINT IMAGE 'hmg.bmp' Width 80 Height 40 STRETCH + + @ 120,120 PRINT IMAGE 'hmg.bmp' Width 80 Height 40 ; + + @ 170, 50 PRINT RECTANGLE TO 200, 180 COLOR { 255, 0 , 0 } ROUNDED PENWIDTH 2 + + @ 205, 10 PRINT 'This is a long long text TO test multiline print..' TO 235, 30 Font 'Arial' Size 11 COLOR { 0, 0, 255 } + + @ 240, 10 PRINT 'Alignment Test' TO 250, 200 Font 'Arial' Size 12 COLOR { 255, 0, 0 } + + @ 250, 10 PRINT 'Alignment Test' TO 260, 200 Font 'Arial' Size 12 COLOR { 0, 255, 0 } CENTER + + @ 260, 10 PRINT 'Alignment Test' TO 270, 200 Font 'Arial' Size 12 COLOR { 0, 0, 255 } RIGHT + + END PRINTPAGE + + START PRINTPAGE + + @ 30, 15 PRINT 'Another Page!' Font 'Arial' Size 72 COLOR { 0, 0, 255 } + + @ 130, 15 PRINT 'Another Page!' Font 'Arial' Size 72 + + @ 150, 10 PRINT LINE TO 150, 200 + + @ 200,200 PRINT 'Another Page!' Font 'Arial' Size 20 RIGHT + + @ 210,100 PRINT 'Another Page!' Font 'Arial' Size 20 CENTER + + END PRINTPAGE + + END PRINTDOC + + RETURN NIL Added: samples/print/demo_OOP.prg =================================================================== --- samples/print/demo_OOP.prg (rev 0) +++ samples/print/demo_OOP.prg 2011-12-07 10:51:41 UTC (rev 842) @@ -0,0 +1,95 @@ +/* + * $Id: demo_3.prg 760 2011-10-21 12:01:51Z l3wonsf $ +*/ + +/* + * HMG 4 demo +*/ + +#include "hmg.ch" + +FUNCTION Main() + + LOCAL oWindow + + HbQt_ErrorSys() + + With Object oWindow := MAINWINDOW():New( "oWindow" ) + :Row := 10 + :Col := 10 + :Width := 200 + :Height := 200 + :Title := "HMG4 printing demo" + :OnInit := {|| oWindow:Center()} + + With Object BUTTON():New("Button1") + :Row := 80 + :Col := 60 + :Caption := "Print!" + :OnClick := {|| Button1Click()} + end + + :EndWindow() + end + + oWindow:Activate() + + RETURN NIL + +/*----------------------------------------------------------------------*/ + +FUNCTION Button1Click() + + LOCAL oPrinter + + With Object oPrinter := Printer():New() + + IF ! :SelectPrinterDefault( .T. ) + MsgStop( "Print cancelled by the User" ) + RETURN NIL + ENDIF + + :StartPrintDoc() + + :StartPrintPage() + + :PrintData( 20 , 20 , "Hello HMG.4!" , "Courier New" , 36 , .F. , .F. , .F. , .F. , , nil , nil , if ( .F. , 4 , if( .F. , 2 , nil ) ) ) + + :PrintLine( 50 , 10 , 50 , 200 , { 0 , 255 , 0 } , ) + + :PrintRectangle( 70 , 10 , 100 , 200 , { 0 , 0 , 255 } , , .F. , .F. ) + + :PrintImage( 120 , 10 , "hmg.bmp" , 80 , 40 , .T. ) + + :PrintImage( 120 , 120 , "hmg.bmp" , 80 , 40 , .F. ) + + :PrintRectangle( 170 , 50 , 200 , 180 , { 255 , 0 , 0 } , 2 , .F. , .T. ) + + :PrintData( 205 , 10 , "This is a long long text TO test multiline print.." , "Arial" , 11 , .F. , .F. , .F. , .F. , { 0 , 0 , 255 } , 235 , 30 , if ( .F. , 4 , if( .F. , 2 , 1 ) ) ) + + :PrintData( 240 , 10 , "Alignment Test" , "Arial" , 12 , .F. , .F. , .F. , .F. , { 255 , 0 , 0 } , 250 , 200 , if ( .F. , 4 , if( .F. , 2 , 1 ) ) ) + + :PrintData( 250 , 10 , "Alignment Test" , "Arial" , 12 , .F. , .F. , .F. , .F. , { 0 , 255 , 0 } , 260 , 200 , if ( .T. , 4 , if( .F. , 2 , 1 ) ) ) + + :PrintData( 260 , 10 , "Alignment Test" , "Arial" , 12 , .F. , .F. , .F. , .F. , { 0 , 0 , 255 } , 270 , 200 , if ( .F. , 4 , if( .T. , 2 , 1 ) ) ) + + :EndPrintPage() + + :StartPrintPage() + + :PrintData( 30 , 15 , "Another Page!" , "Arial" , 72 , .F. , .F. , .F. , .F. , { 0 , 0 , 255 } , nil , nil , if ( .F. , 4 , if( .F. , 2 , nil ) ) ) + + :PrintData( 130 , 15 , "Another Page!" , "Arial" , 72 , .F. , .F. , .F. , .F. , , nil , nil , if ( .F. , 4 , if( .F. , 2 , nil ) ) ) + + :PrintLine( 150 , 10 , 150 , 200 , , ) + + :PrintData( 200 , 200 , "Another Page!" , "Arial" , 20 , .F. , .F. , .F. , .F. , , nil , nil , if ( .F. , 4 , if( .T. , 2 , nil ) ) ) + + :PrintData( 210 , 100 , "Another Page!" , "Arial" , 20 , .F. , .F. , .F. , .F. , , nil , nil , if ( .T. , 4 , if( .F. , 2 , nil ) ) ) + + :EndPrintPage() + + :EndPrintDoc() + end + + RETURN NIL Modified: source/printer.prg =================================================================== --- source/printer.prg 2011-12-05 12:29:43 UTC (rev 841) +++ source/printer.prg 2011-12-07 10:51:41 UTC (rev 842) @@ -53,33 +53,20 @@ // data: please preserve alphabetic order. DATA aCommands INIT {} PROTECTED - DATA nColor INIT NIL PROTECTED - DATA nCollate INIT NIL PROTECTED - DATA nCopies INIT NIL PROTECTED DATA lDefault INIT .F. PROTECTED - DATA nDefaultSource INIT NIL PROTECTED - DATA nDuplex INIT NIL PROTECTED DATA lDialog INIT .F. PROTECTED DATA lDialogCancelled INIT .F. PROTECTED DATA cFileName INIT NIL PROTECTED DATA cName INIT NIL PROTECTED - DATA lName INIT NIL PROTECTED - DATA nOrientation INIT NIL PROTECTED - DATA qPainter INIT NIL PROTECTED + DATA lName INIT .F. PROTECTED DATA nPaperLength INIT NIL PROTECTED - DATA nPaperSize INIT NIL PROTECTED DATA nPaperWidth INIT NIL PROTECTED DATA lPdf INIT .F. PROTECTED DATA lPreview INIT .T. PROTECTED - DATA qPrintDialog INIT NIL PROTECTED - DATA pPrinter INIT NIL PROTECTED - DATA qPrinter INIT NIL PROTECTED + DATA oPrinter INIT NIL PROTECTED DATA oPrinterInfo INIT NIL PROTECTED - DATA qPrinterInfo INIT NIL PROTECTED DATA oPrinterList INIT NIL PROTECTED - DATA qPrnDlg INIT NIL PROTECTED - DATA qSizeF INIT NIL PROTECTED - DATA oQtFont INIT NIL PROTECTED + DATA oPrintPreviewDlg INIT NIL PROTECTED DATA nQuality INIT NIL PROTECTED // Methods: please preserve alphabetic order. Methods "New" and "Create" must be the first if present @@ -96,7 +83,6 @@ METHOD SelectPrinterDefault METHOD SelectPrinterDialog METHOD SelectPrinterPdf - METHOD SetQPrinterProperties METHOD StartPrintDoc METHOD StartPrintPage @@ -122,6 +108,19 @@ ..............................................................................*/ METHOD New() CLASS PRINTER + Super:New() + + // create print object and set default printer properties + ::oPrinter := QPrinter( QPrinter_HighResolution ) + + ::Collate( 0 ) + ::Color( QPrinter_Color ) + ::Copies( 1 ) + ::DefaultSource( QPrinter_Auto ) + ::Duplex( QPrinter_DuplexAuto ) + ::Orientation( QPrinter_Portrait ) + ::PaperSize( QPrinter_A4 ) // set ::Paperlength and -width too + RETURN Self /*.............................................................................. @@ -143,37 +142,24 @@ RETURN .f. ENDIF - IF ::lPdf - IF ( ::nQuality ) - ::qPrinter := QPrinter( ::nQuality ) - ELSE - ::qPrinter := QPrinter() - ENDIF + IF ::lPdf + ::oPrinter:SetOutputFormat( QPrinter_PdfFormat ) + ::oPrinter:SetOutputFileName( ::cFileName ) + ::PaintRequested() - ::qPrinter:SetOutputFormat( 1 ) - ::qPrinter:SetOutputFileName( ::cFileName ) - ::SetQPrinterProperties() - ::PaintRequested( ::qPrinter ) - - ELSEIF ::lName .AND. ::lPreview + ELSEIF ::lName .AND. ::lPreview lFound := .F. ::oPrinterInfo := QPrinterInfo() ::oPrinterList := ::oPrinterInfo:availablePrinters() FOR i := 0 to ::oPrinterList:Size() - 1 - ::qPrinterInfo := ::oPrinterList:at( i ) - IF alltrim( upper( alltrim( ::cName ) ) ) == alltrim( upper( ::qPrinterInfo:printername() ) ) + ::oPrinterInfo := ::oPrinterList:at( i ) + IF alltrim( upper( alltrim( ::cName ) ) ) == alltrim( upper( ::oPrinterInfo:printername() ) ) lFound := .T. - IF hb_IsNumeric( ::nQuality ) - ::qPrinter := QPrinter( ::nQuality ) - ELSE - ::qPrinter := QPrinter() - ENDIF - ::SetQPrinterProperties() - ::qPrinter:setPrinterName( ::qPrinterInfo:printername() ) - ::qPrnDlg := QPrintPreviewDialog( ::qPrinter, ::s_oMainWindow:QtObject ) - ::qPrnDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) - ::qPrnDlg:exec() - ::qPrnDlg:disconnect( "paintRequested(QPrinter*)" ) + ::oPrinter:setPrinterName( ::oPrinterInfo:printername() ) + ::oPrintPreviewDlg := QPrintPreviewDialog( ::oPrinter, ::s_oMainWindow:QtObject ) + ::oPrintPreviewDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) + ::oPrintPreviewDlg:exec() + ::oPrintPreviewDlg:disconnect( "paintRequested(QPrinter*)" ) EXIT ENDIF NEXT i @@ -182,23 +168,17 @@ RETURN .f. ENDIF - ELSEIF ::lName .AND. !::lPreview + ELSEIF ::lName .AND. !::lPreview lFound := .F. ::oPrinterInfo := QPrinterInfo() ::oPrinterList := ::oPrinterInfo:availablePrinters() FOR i := 0 to ::oPrinterList:Size() - 1 - ::qPrinterInfo := ::oPrinterList:at( i ) - IF alltrim( upper( alltrim( ::cName ) ) ) == alltrim( upper( ::qPrinterInfo:printername() ) ) + ::oPrinterInfo := ::oPrinterList:at( i ) + IF alltrim( upper( alltrim( ::cName ) ) ) == alltrim( upper( ::oPrinterInfo:printername() ) ) lFound := .T. - IF hb_IsNumeric( ::nQuality ) - ::qPrinter := QPrinter( ::nQuality ) - ELSE - ::qPrinter := QPrinter() - ENDIF - ::SetQPrinterProperties() - ::qPrinter:setPrinterName( ::qPrinterInfo:printername() ) - ::PaintRequested( ::qPrinter ) + ::oPrinter:setPrinterName( ::oPrinterInfo:printername() ) + ::PaintRequested() EXIT ENDIF NEXT i @@ -207,30 +187,23 @@ RETURN .f. ENDIF - ELSEIF ::lDefault .AND. ::lPreview - ::qPrnDlg := QPrintPreviewDialog() - ::qPrnDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) - ::qPrnDlg:exec() - ::qPrnDlg:disconnect( "paintRequested(QPrinter*)" ) + ELSEIF ::lDefault .AND. ::lPreview + ::oPrintPreviewDlg := QPrintPreviewDialog( ::oPrinter, ::s_oMainWindow:QtObject ) + ::oPrintPreviewDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) + ::oPrintPreviewDlg:exec() + ::oPrintPreviewDlg:disconnect( "paintRequested(QPrinter*)" ) ELSEIF ::lDefault .AND. !::lPreview - IF hb_IsNumeric( ::nQuality ) - ::qPrinter := QPrinter( ::nQuality ) - ELSE - ::qPrinter := QPrinter() - ENDIF + ::PaintRequested() - ::SetQPrinterProperties() - ::PaintRequested( ::qPrinter ) - ELSEIF ::lDialog .AND. ::lPreview - ::qPrnDlg := QPrintPreviewDialog( ::qPrinter , ::s_oMainWindow:QtObject ) - ::qPrnDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) - ::qPrnDlg:exec() - ::qPrnDlg:disconnect( "paintRequested(QPrinter*)" ) + ::oPrintPreviewDlg := QPrintPreviewDialog( ::oPrinter , ::s_oMainWindow:QtObject ) + ::oPrintPreviewDlg:connect( "paintRequested(QPrinter*)", {|p| ::paintRequested( p ) } ) + ::oPrintPreviewDlg:exec() + ::oPrintPreviewDlg:disconnect( "paintRequested(QPrinter*)" ) ELSEIF ::lDialog .AND. !::lPreview - ::PaintRequested( ::QPrintDialog:printer() ) + ::PaintRequested() ENDIF @@ -256,7 +229,7 @@ /*.............................................................................. PaintRequested ..............................................................................*/ -METHOD PaintRequested( pPrinter ) CLASS PRINTER +METHOD PaintRequested( ) CLASS PRINTER LOCAL nLogicalWidth, nLogicalHeight, nPhysicalWidth, nPhysicalHeight LOCAL nFontSize, nToRow, nToCol, nAlignment, qRectF, qTextOption @@ -275,38 +248,33 @@ LOCAL lFirst LOCAL oImg LOCAL oPen - LOCAL qSizeF + LOCAL oSize + LOCAL oPainter, oQtFont lFirst := .T. - ::pPrinter := pPrinter +// ::SetQPrinterProperties() - IF VALTYPE( ::qPrinter ) = 'U' - // Create QPrinter -// ::qPrinter := iif( hb_isObject( ::pPrinter ), ::pPrinter, ::pPrinter ) - ::qPrinter := ::pPrinter - ENDIF + // Create oSizeF to retrieve dimensions in milimeters + oSize := ::oPrinter:PaperSize( 0 ) // can be regression + nLogicalWidth := oSize:width() + nLogicalHeight := oSize:height() - // Create QSizeF to retrieve dimensions in milimeters - qSizeF := ::qPrinter:PaperSize( 0 ) // can be regression - nLogicalWidth := qSizeF:width() - nLogicalHeight := qSizeF:height() - // Create Painter - ::qPainter := QPainter() + oPainter := QPainter() // Start Printing - ::qPainter:Begin( ::qPrinter ) + oPainter:Begin( ::oPrinter ) // Make adjustments to be able to work in milimeters ************ - nPhysicalWidth := ::qPrinter:width() - nPhysicalHeight := ::qPrinter:height() - ::qPainter:SetWindow( 0,0,nLogicalWidth,nLogicalHeight ) - ::qPainter:setViewport( 0, 0, nPhysicalWidth, nPhysicalHeight ) + nPhysicalWidth := ::oPrinter:width() + nPhysicalHeight := ::oPrinter:height() + oPainter:SetWindow( 0,0,nLogicalWidth,nLogicalHeight ) + oPainter:setViewport( 0, 0, nPhysicalWidth, nPhysicalHeight ) FOR i := 1 To Len( ::aCommands ) - IF ::aCommands[i][1] == 'PRINT_DATA' + IF ::aCommands[i][1] == 'PRINT_DATA' nRow := ::aCommands [i] [ 2] nCol := ::aCommands [i] [ 3] cData := ::aCommands [i] [ 4] @@ -321,34 +289,34 @@ nToCol := ::aCommands [i] [13] nAlignment := ::aCommands [i] [14] - ::oQtFont := QFont() + oQtFont := QFont() IF hb_IsChar( cFontName ) - ::oQtFont:SetFamily( cFontName ) + oQtFont:SetFamily( cFontName ) ENDIF IF hb_IsNumeric( nFontSize ) - ::oQtFont:SetPointSize( nFontSize * nLogicalHeight / nPhysicalHeight ) + oQtFont:SetPointSize( nFontSize * nLogicalHeight / nPhysicalHeight ) ENDIF IF hb_IsLogical( lFontBold ) - ::oQtFont:SetBold( lFontBold ) + oQtFont:SetBold( lFontBold ) ENDIF IF hb_IsLogical( lFontItalic ) - ::oQtFont:SetItalic( lFontItalic ) + oQtFont:SetItalic( lFontItalic ) ENDIF IF hb_IsLogical( lFontUnderLine ) - ::oQtFont:SetUnderLine( lFontUnderLine ) + oQtFont:SetUnderLine( lFontUnderLine ) ENDIF IF hb_IsLogical( lFontStrikeout ) - ::oQtFont:SetStrikeOut( lFontStrikeout ) + oQtFont:SetStrikeOut( lFontStrikeout ) ENDIF IF hb_IsArray( aColor ) oPen := QPen() oPen:SetColor( QColor( aColor [1] , aColor [2] , aColor [3] ) ) - ::qPainter:setPen( oPen ) -// ::qPainter:setPen( QColor( aColor [1] , aColor [2] , aColor [3] ) ) + oPainter:setPen( oPen ) +// oPainter:setPen( QColor( aColor [1] , aColor [2] , aColor [3] ) ) ENDIF - ::qPainter:SetFont( ::oQtFont ) + oPainter:SetFont( oQtFont ) IF hb_IsNumeric( nToRow ) .AND. hb_IsNumeric( nToCol ) QRectF := QRectF( nCol , nRow , nToCol - nCol , nToRow - nRow ) @@ -360,11 +328,11 @@ QTextOption:setAlignment( 0 ) ENDIF - ::qPainter:drawText( QRectF , cData , QTextOption ) + oPainter:drawText( QRectF , cData , QTextOption ) ELSEIF VALTYPE( nToRow ) = 'U' .AND. VALTYPE( nToCol ) = 'U' IF VALTYPE( nAlignment ) = 'U' - ::qPainter:drawText( nCol , nRow , cData ) + oPainter:drawText( nCol , nRow , cData ) ELSE IF nAlignment == 2 // right nToRow := nRow + nFontSize @@ -376,7 +344,7 @@ QRectF := QRectF( nCol , nRow , nToCol - nCol , nToRow - nRow ) QTextOption := QTextOption() QTextOption:setAlignment( 2 ) - ::qPainter:drawText( QRectF , cData , QTextOption ) + oPainter:drawText( QRectF , cData , QTextOption ) ELSEIF nAlignment == 4 // center nToRow := nRow + nFontSize @@ -388,7 +356,7 @@ QRectF := QRectF( nCol , nRow , nToCol - nCol , nToRow - nRow ) QTextOption := QTextOption() QTextOption:setAlignment( 4 ) - ::qPainter:drawText( QRectF , cData , QTextOption ) + oPainter:drawText( QRectF , cData , QTextOption ) ENDIF ENDIF ENDIF @@ -412,10 +380,10 @@ qPen:SetWidth( nPenWidth ) ENDIF IF VALTYPE( aColor ) != 'U' .or. VALTYPE( nPenWidth ) != 'U' - ::qPainter:setPen( qPen ) + oPainter:setPen( qPen ) ENDIF - ::qPainter:drawLine( nCol , nRow , nToCol , nToRow ) + oPainter:drawLine( nCol , nRow , nToCol , nToRow ) ELSEIF ::aCommands[i][1] == 'PRINT_RECTANGLE' nRow := ::aCommands [i] [ 2] @@ -438,14 +406,14 @@ qPen:SetWidth( nPenWidth ) ENDIF IF VALTYPE( aColor ) != 'U' .or. VALTYPE( nPenWidth ) != 'U' - ::qPainter:setPen( qPen ) + oPainter:setPen( qPen ) ENDIF // Process rounded IF hb_IsLogical( lRounded ) .AND. lRounded - ::qPainter:drawRoundedRect( nCol , nRow , nToCol - nCol , nToRow - nRow , 20 , 20 ) + oPainter:drawRoundedRect( nCol , nRow , nToCol - nCol , nToRow - nRow , 20 , 20 ) ELSE - ::qPainter:drawRect( nCol , nRow , nToCol - nCol , nToRow - nRow ) + oPainter:drawRect( nCol , nRow , nToCol - nCol , nToRow - nRow ) ENDIF IF hb_IsLogical( lFilled ) ENDIF @@ -467,27 +435,27 @@ .or. ; ( VALTYPE( lStretch ) = 'U' ) // Scaled - ::qPainter:drawPixmap( nCol , nRow , oImg:scaled( nWidth , nHeight , 1 , 0 ) ) + oPainter:drawPixmap( nCol , nRow , oImg:scaled( nWidth , nHeight , 1 , 0 ) ) ELSEIF( hb_IsLogical( lStretch ) .AND. lStretch ) // Stretched - ::qPainter:drawPixmap( nCol , nRow , nWidth , nHeight , oImg ) + oPainter:drawPixmap( nCol , nRow , nWidth , nHeight , oImg ) ENDIF ELSE - ::qPainter:drawPixmap( nCol , nRow , oImg ) + oPainter:drawPixmap( nCol , nRow , oImg ) ENDIF // START PRINTPAGE - ELSEIF ::aCommands[i][1] == 'START_PRINTPAGE' + ELSEIF ::aCommands[i][1] == 'START_PRINTPAGE' IF !lFirst - ::qPrinter:NewPage() + ::oPrinter:NewPage() ENDIF lFirst := .F. ENDIF - ::qPainter:setPen( QPen() ) + oPainter:setPen( QPen() ) NEXT i - ::qPainter:end() + oPainter:end() RETURN NIL @@ -544,24 +512,23 @@ /*.............................................................................. SelectPrinterByName ..............................................................................*/ -METHOD SelectPrinterByName( cName , lPreview ) CLASS PRINTER +METHOD SelectPrinterByName( cName, lPreview ) CLASS PRINTER IF ! hb_IsChar( cName ) RETURN .F. ENDIF IF right( alltrim( lower( cName ) ) , 4 ) == '.pdf' - ::selectPrinterpdf( cName ) - RETURN .f. + RETURN ::selectPrinterpdf( cName ) ENDIF IF ! hb_IsLogical( lPreview ) .AND. VALTYPE( lPreview ) <> 'U' RETURN .F. ENDIF - ::cName := cName - ::lName := .T. - ::lDialog := .F. + ::cName := cName + ::lName := .T. + ::lDialog := .F. ::lPreview := lPreview ::lDefault := .F. @@ -572,13 +539,13 @@ ..............................................................................*/ METHOD SelectPrinterDefault( lPreview ) CLASS PRINTER - IF ! hb_IsLogical( lPreview ) .AND. VALTYPE( lPreview ) <> 'U' + IF PCOUNT() == 1 .AND. ! hb_IsLogical( lPreview ) RETURN .F. ENDIF ::lPreview := lPreview ::lDefault := .T. - ::lName := .F. + ::lName := .F. RETURN .T. @@ -587,36 +554,46 @@ ..............................................................................*/ METHOD SelectPrinterDialog( lPreview ) CLASS PRINTER - LOCAL nResult + LOCAL oPrintDialog IF ! hb_IsLogical( lPreview ) .AND. VALTYPE( lPreview ) <> 'U' RETURN .F. ENDIF - ::QPrintDialog := QPrintDialog() - nResult := ::QPrintDialog:exec() - IF nResult == 1 // accepted - ::qPrinter := ::QPrintDialog:printer() + oPrintDialog := QPrintDialog( ::oPrinter ) // ::oPrintDialog has to be a Class DATA !!! + IF oPrintDialog:exec() == QDialog_Accepted + + /* would be nice to get the properties from printer itself + but Qt didn\xB4t support it + // set the default printer properties from printer object + ::Collate( ::oPrinter:collateCopies() ) + ::Color( ::oPrinter:colorMode() ) // 1 = color, 0 = greyscale + //::Copies( ::oPrinter:copyCount() ) // not supported by Harbour ? + ::DefaultSource( ::oPrinter:paperSource() ) + ::Duplex( ::oPrinter:duplex() ) + ::Orientation( ::oPrinter:orientation() ) + ::PaperSize( ::oPrinter:paperSize () ) // set Paperlength and -width too */ + * FOR HMG backwards compatibility * A dirty job... but someone has to DO it ; ) __MVPUBLIC( '_HMG_CURRENTPRINTERNAME' ) __MVPUT( '_HMG_CURRENTPRINTERNAME', '_DIALOG_' ) __MVPUBLIC( '_HMG_CURRENTPAPERSIZE' ) - __MVPUT( '_HMG_CURRENTPAPERSIZE', ::qPrinter:paperSize() ) + __MVPUT( '_HMG_CURRENTPAPERSIZE', ::oPrinter:paperSize() ) __MVPUBLIC( '_HMG_CURRENTORIENTATION' ) - __MVPUT( '_HMG_CURRENTORIENTATION', ::qPrinter:orientation() ) ;; + __MVPUT( '_HMG_CURRENTORIENTATION', ::oPrinter:orientation() ) ;; // Don't worry... the variables are released at end printdoc : ) - ELSEIF nResult == 0 // cancelled + ELSE ::lDialogCancelled := .T. RETURN .F. ENDIF - ::lDialog := .T. - ::lName := .F. + ::lDialog := .T. + ::lName := .F. ::lPreview := lPreview ::lDefault := .F. @@ -631,10 +608,10 @@ RETURN .F. ENDIF - ::lPreview := .F. - ::lDefault := .F. - ::lName := .F. - ::lPdf := .T. + ::lPreview := .F. + ::lDefault := .F. + ::lName := .F. + ::lPdf := .T. ::cFileName := cFileName RETURN .T. @@ -655,52 +632,6 @@ RETURN NIL -/*.............................................................................. - SetQPrinterProperties -..............................................................................*/ -METHOD SetQPrinterProperties() CLASS PRINTER - - IF hb_IsNumeric( ::nOrientation ) - ::QPrinter:setOrientation( ::nOrientation ) - ENDIF - - IF hb_IsNumeric( ::nCopies ) - ::QPrinter:setNumCopies( ::nCopies ) - ENDIF - - IF hb_IsNumeric( ::nPaperSize ) - IF ::npaperSize == 30 - ::qSizeF := QSizeF() - ::qSizeF:setWidth( ::nPaperWidth ) - ::qSizeF:setHeight( ::nPaperHeight ) - ::QPrinter:setPaperSize( 0 , ::qSizeF ) - ELSE - ::QPrinter:setPaperSize( ::nPaperSize ) - ENDIF - ENDIF - - IF hb_IsNumeric( ::nDefaultSource ) - ::QPrinter:setPaperSource( ::nDefaultSource ) - ENDIF - - IF hb_IsNumeric( ::nColor ) - ::QPrinter:setColorMode( ::nColor ) - ENDIF - - IF hb_IsNumeric( ::nDuplex ) - ::QPrinter:setDuplex( ::nDuplex ) - ENDIF - - IF hb_IsNumeric( ::nCollate ) - IF ::nCollate == 1 - ::QPrinter:setCollateCopies( .T. ) - ELSEIF ::nCollate == 0 - ::QPrinter:setCollateCopies( .F. ) - ENDIF - ENDIF - - RETURN NIL - /*-------------------------------Properties & Events--------------------------*/ /*.............................................................................. @@ -708,143 +639,177 @@ ..............................................................................*/ METHOD Collate( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nCollate - ELSEIF PCOUNT() == 1 - ::nCollate := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setCollateCopies( nValue == 1 ) ENDIF - RETURN NIL + RETURN ( IF ( ::oPrinter:CollateCopies(), 1, 0 ) ) /*.............................................................................. Color ..............................................................................*/ METHOD Color( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nColor - ELSEIF PCOUNT() == 1 - ::nColor := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setColorMode( nValue ) ENDIF - RETURN NIL + RETURN ::oPrinter:ColorMode() /*.............................................................................. Copies ..............................................................................*/ METHOD Copies( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nCopies - ELSEIF PCOUNT() == 1 - ::nCopies := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setNumCopies( nValue ) ENDIF - RETURN NIL + RETURN ::oPrinter:NumCopies() /*.............................................................................. DefaultSource ..............................................................................*/ METHOD DefaultSource( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nPaperSource - ELSEIF PCOUNT() == 1 - ::nPaperSource := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setPaperSource( nValue ) ENDIF - RETURN NIL + RETURN ::oPrinter:PaperSource() /*.............................................................................. Duplex ..............................................................................*/ METHOD Duplex( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nDuplex - ELSEIF PCOUNT() == 1 - ::nDuplex := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setDuplex( nValue ) ENDIF - RETURN NIL + RETURN ::oPrinter:Duplex() /*.............................................................................. Orientation ..............................................................................*/ METHOD Orientation( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nOrientation - ELSEIF PCOUNT() == 1 - ::nOrientation := nValue + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + ::oPrinter:setOrientation( nValue ) ENDIF - RETURN NIL + RETURN ::oPrinter:Orientation() /*.............................................................................. PaperLength ..............................................................................*/ METHOD PaperLength( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nPaperLength - ELSEIF PCOUNT() == 1 + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) ::nPaperLength := nValue ENDIF - RETURN NIL + RETURN ::nPaperLength /*.............................................................................. PaperSize ..............................................................................*/ METHOD PaperSize( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nPaperSize - ELSEIF PCOUNT() == 1 - ::nPaperSize := nValue + LOCAL oSize, oSizeF +/* LOCAL hQuery := hb_Hash(), aSize + + hQuery[ QPrinter_A0 ] := { 841 , 1189 } + hQuery[ QPrinter_A1 ] := { 594 , 841 } + hQuery[ QPrinter_A2 ] := { 420 , 594 } + hQuery[ QPrinter_A3 ] := { 297 , 420 } + hQuery[ QPrinter_A4 ] := { 210 , 297 } + hQuery[ QPrinter_A5 ] := { 148 , 210 } + hQuery[ QPrinter_A6 ] := { 105 , 148 } + hQuery[ QPrinter_A7 ] := { 74 , 105 } + hQuery[ QPrinter_A8 ] := { 52 , 74 } + hQuery[ QPrinter_A9 ] := { 37 , 52 } + hQuery[ QPrinter_B0 ] := { 1030 , 1456 } + hQuery[ QPrinter_B1 ] := { 728 , 1030 } + hQuery[ QPrinter_B2 ] := { 515 , 728 } + hQuery[ QPrinter_B3 ] := { 364 , 515 } + hQuery[ QPrinter_B4 ] := { 257 , 364 } + hQuery[ QPrinter_B5 ] := { 182 , 257 } + hQuery[ QPrinter_B6 ] := { 128 , 182 } + hQuery[ QPrinter_B7 ] := { 91 , 128 } + hQuery[ QPrinter_B8 ] := { 64 , 91 } + hQuery[ QPrinter_B9 ] := { 45 , 64 } + hQuery[ QPrinter_B10 ] := { 32 , 45 } + hQuery[ QPrinter_C5E ] := { 163 , 229 } + hQuery[ QPrinter_Comm10E ] := { 105 , 241 } + hQuery[ QPrinter_DLE ] := { 110 , 220 } + hQuery[ QPrinter_Executive ] := { 191 , 254 } + hQuery[ QPrinter_Folio ] := { 210 , 330 } + hQuery[ QPrinter_Ledger ] := { 432 , 279 } + hQuery[ QPrinter_Legal ] := { 216 , 356 } + hQuery[ QPrinter_Letter ] := { 216 , 279 } + hQuery[ QPrinter_Tabloid ] := { 279 , 432 } + hQuery[ QPrinter_Custom ] := { 0 , 0 } +*/ + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) + IF nValue == QPrinter_Custom + oSizeF := QSizeF() + oSizeF:setWidth( ::nPaperWidth ) + oSizeF:setHeight( ::nPaperHeight ) + ::oPrinter:setPaperSize( 0 , oSizeF ) + ELSE + ::oPrinter:setPaperSize( nValue ) + + oSize := ::oPrinter:PaperSize( 0 ) + ::PaperWidth( oSize:width() ) + ::PaperLength( oSize:height() ) + +/* IF hb_IsArray( aSize := hb_hGet( hQuery, nValue ) ) + IF aSize[1] > 0 + ::PaperWidth( aSize[1] ) + ENDIF + + IF aSize[2] > 0 + ::PaperLength( aSize[2] ) + ENDIF + ENDIF*/ + ENDIF ENDIF - RETURN NIL + RETURN ::oPrinter:PaperSize() /*.............................................................................. PaperWidth ..............................................................................*/ METHOD PaperWidth( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nPaperWidth - ELSEIF PCOUNT() == 1 + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) ::nPaperWidth := nValue ENDIF - RETURN NIL + RETURN ::nPaperWidth /*.............................................................................. Preview ..............................................................................*/ METHOD Preview( lValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::lPreview - ELSEIF PCOUNT() == 1 + IF PCOUNT() == 1 .AND. hb_isLogical( lValue ) ::lPreview := lValue ENDIF - RETURN NIL + RETURN ::lPreview /*.............................................................................. Quality ..............................................................................*/ METHOD Quality( nValue ) CLASS PRINTER - IF PCOUNT() == 0 - RETURN ::nQuality - ELSEIF PCOUNT() == 1 + IF PCOUNT() == 1 .AND. hb_isNumeric( nValue ) ::nQuality := nValue ENDIF - RETURN NIL + RETURN ::nQuality /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////////*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2011-12-05 12:29:50
|
Revision: 841 http://hmg.svn.sourceforge.net/hmg/?rev=841&view=rev Author: ricciz Date: 2011-12-05 12:29:43 +0000 (Mon, 05 Dec 2011) Log Message: ----------- Modified Paths: -------------- Changelog source/grid.prg Modified: Changelog =================================================================== --- Changelog 2011-12-05 00:35:10 UTC (rev 840) +++ Changelog 2011-12-05 12:29:43 UTC (rev 841) @@ -16,6 +16,10 @@ The license applies to all entries newer than 2009-04-28. */ +2011-12-12 13:30 UTC+0100 Ricci Zepmeusel ( ricci at conzoft.de ) + * source/grid.prg + ! GRID now accept flat (1D) arrays again + 2011-12-05 01:28 UTC+0100 Francesco Perillo ( fperillo at gmail.com ) + samples/validator/validator.prg + it's a basic program to test and compare different Validator Modified: source/grid.prg =================================================================== --- source/grid.prg 2011-12-05 00:35:10 UTC (rev 840) +++ source/grid.prg 2011-12-05 12:29:43 UTC (rev 841) @@ -1079,7 +1079,7 @@ RETURN aData ELSEIF PCOUNT() == 1 .AND. hb_IsArray( aValue ) FOR i := 1 to len( aValue ) - Self:Additem( aValue[i] ) + ::Additem( IF( hb_isChar( aValue[i] ), { aValue[i] }, aValue[i] ) ) NEXT i ENDIF ELSE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fpe...@us...> - 2011-12-04 22:49:08
|
Revision: 838 http://hmg.svn.sourceforge.net/hmg/?rev=838&view=rev Author: fperillo Date: 2011-12-04 22:49:02 +0000 (Sun, 04 Dec 2011) Log Message: ----------- 2011-12-04 23:46 UTC+0100 Francesco Perillo ( fperillo at gmail.com ) * source/textbox.prg * Removed the WITH OBJECT Self stuff... it has some side-effects and must be implemented a bit differently... Modified Paths: -------------- Changelog source/textbox.prg Modified: Changelog =================================================================== --- Changelog 2011-12-04 10:49:13 UTC (rev 837) +++ Changelog 2011-12-04 22:49:02 UTC (rev 838) @@ -16,6 +16,11 @@ The license applies to all entries newer than 2009-04-28. */ +2011-12-04 23:46 UTC+0100 Francesco Perillo ( fperillo at gmail.com ) + * source/textbox.prg + * Removed the WITH OBJECT Self stuff... it has some side-effects and + must be implemented a bit differently... + 2011-12-04 11:36 UTC+0100 Francesco Perillo ( fperillo at gmail.com ) * source/textbox.prg + Added QValidator support. It can work as a PICTURE alternative using Modified: source/textbox.prg =================================================================== --- source/textbox.prg 2011-12-04 10:49:13 UTC (rev 837) +++ source/textbox.prg 2011-12-04 22:49:02 UTC (rev 838) @@ -409,6 +409,7 @@ RETURN Self +/*----------------------------------------------------------------------*/ METHOD setMask( ) CLASS TEXTBOX @@ -906,7 +907,7 @@ ENDIF IF hb_isBlock( ::bOnGotFocus ) - WITH OBJECT Self; Eval( ::bOnGotFocus ); END + Eval( ::bOnGotFocus ) ENDIF HB_TRACE( HB_TR_ALWAYS, "END GOTFOCUS "+ ::cName ) @@ -963,7 +964,7 @@ HB_TRACE( HB_TR_ALWAYS, "END LOSTFOCUS "+ ::cName ) IF hb_isBlock( ::bOnLostFocus ) - WITH OBJECT Self; Eval( ::bOnLostFocus ); END + Eval( ::bOnLostFocus ) ENDIF ::lLostFocusExecFlag := .F. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |