WinPrinterContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 25 Jun 2015 15:10:13 +0100
branchjv
changeset 3478 45ad75b68d16
parent 3457 dcc643202507
child 3528 378efd6fd2f1
permissions -rw-r--r--
Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     1
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     3
	      All Rights Reserved
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     4
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     5
 This software is furnished under a license and may be used
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     6
 only in accordance with the terms of that license and with the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     8
 be provided or otherwise made available to, or used by, any
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
     9
 other person.  No title to or ownership of the software is
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    10
 hereby transferred.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    11
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    12
"{ Package: 'stx:libview2' }"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    13
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    14
PrinterContext subclass:#WinPrinterContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    15
	instanceVariableNames:'deviceFonts hatch supportsColor'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    16
	classVariableNames:'PostScriptBlackWhite'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    17
	poolDictionaries:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    18
	category:'Interface-Printing'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    19
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    20
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    21
WinPrinterContext subclass:#WinPrinterGraphicContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    22
	instanceVariableNames:'fontScale printPageNumbers pageNumberFormat pageCounter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    23
		needsEndOfPage titleFont'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    24
	classVariableNames:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    25
	poolDictionaries:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    26
	privateIn:WinPrinterContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    27
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    28
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    29
!WinPrinterContext primitiveDefinitions!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    30
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    31
#undef INT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    32
#define INT WIN_INT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    33
#undef Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    34
#define Array WIN_Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    35
#undef Number
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    36
#define Number WIN_Number
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    37
#undef Method
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    38
#define Method WIN_Method
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    39
#undef Point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    40
#define Point WIN_Point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    41
#undef Rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    42
/* #define Rectangle WIN_Rectangle */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    43
#undef True
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    44
#define True WIN_True
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    45
#undef False
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    46
#define False WIN_False
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    47
#undef Block
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    48
#define Block WIN_Block
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    49
#undef Context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    50
#define Context WIN_Context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    51
#undef Date
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    52
#define Date WIN_Date
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    53
#undef Time
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    54
#define Time WIN_Time
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    55
#undef Delay
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    56
#define Delay WIN_Delay
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    57
#undef Signal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    58
#define Signal WIN_Signal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    59
#undef Set
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    60
#define Set WIN_Set
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    61
#undef Process
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    62
#define Process WIN_Process
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    63
#undef Processor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    64
#define Processor WIN_Processor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    65
#undef Message
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    66
#define Message WIN_Message
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    67
#undef String
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    68
#define String WIN_String
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    69
#undef Character
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    70
#define Character WIN_Character
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    71
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    72
#include <stdio.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    73
#include <errno.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    74
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    75
#ifdef __BORLANDC__
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    76
# define NOATOM
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    77
# define NOGDICAPMASKS
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    78
# define NOMETAFILE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    79
# define NOMINMAX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    80
# define NOOPENFILE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    81
# define NOSOUND
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    82
# define NOWH
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    83
# define NOCOMM
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    84
# define NOKANJI
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    85
# define NOCRYPT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    86
# define NOMCX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    87
# define WIN32_LEAN_AND_MEAN
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    88
# include <windows.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    89
# include <shellapi.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    90
# include <sys\timeb.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    91
# include <dir.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    92
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    93
# define _USERENTRY /**/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    94
# define NOATOM
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    95
# define NOGDICAPMASKS
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    96
# define NOMETAFILE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    97
# define NOMINMAX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    98
# define NOOPENFILE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    99
# define NOSOUND
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   100
# define NOWH
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   101
# define NOCOMM
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   102
# define NOKANJI
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   103
# define NOCRYPT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   104
# define NOMCX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   105
# define WIN32_LEAN_AND_MEAN
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   106
# include <windows.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   107
# include <sys\timeb.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   108
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   109
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   110
#include <process.h>
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   111
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   112
#ifdef __DEF_Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   113
# undef Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   114
# define Array __DEF_Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   115
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   116
#ifdef __DEF_Number
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   117
# undef Number
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   118
# define Number __DEF_Number
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   119
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   120
#ifdef __DEF_Method
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   121
# undef Method
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   122
# define Method __DEF_Method
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   123
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   124
#ifdef __DEF_Point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   125
# undef Point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   126
# define Point __DEF_Point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   127
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   128
#ifdef __DEF_Rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   129
# undef Rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   130
# define Rectangle __DEF_Rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   131
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   132
# undef Rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   133
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   134
#ifdef __DEF_Block
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   135
# undef Block
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   136
# define Block __DEF_Block
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   137
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   138
#ifdef __DEF_Context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   139
# undef Context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   140
# define Context __DEF_Context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   141
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   142
#ifdef __DEF_Date
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   143
# undef Date
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   144
# define Date __DEF_Date
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   145
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   146
#ifdef __DEF_Time
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   147
# undef Time
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   148
# define Time __DEF_Time
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   149
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   150
# ifdef __DEF_Set
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   151
#  undef Set
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   152
#  define Set __DEF_Set
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   153
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   154
# ifdef __DEF_Signal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   155
#  undef Signal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   156
#  define Signal __DEF_Signal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   157
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   158
# ifdef __DEF_Delay
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   159
#  undef Delay
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   160
#  define Delay __DEF_Delay
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   161
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   162
# ifdef __DEF_Process
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   163
#  undef Process
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   164
#  define Process __DEF_Process
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   165
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   166
# ifdef __DEF_Processor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   167
#  undef Processor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   168
#  define Processor __DEF_Processor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   169
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   170
# ifdef __DEF_Message
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   171
#  undef Message
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   172
#  define Message __DEF_Message
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   173
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   174
# ifdef __DEF_String
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   175
#  undef String
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   176
#  define String __DEF_String
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   177
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   178
# ifdef __DEF_Character
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   179
#  undef Character
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   180
#  define Character __DEF_Character
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   181
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   182
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   183
#undef INT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   184
#define INT STX_INT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   185
#undef UINT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   186
#define UINT STX_UINT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   187
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   188
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   189
 * some defines - tired of typing ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   190
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   191
#define _HANDLEVal(o)        (HANDLE)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   192
#define _HBITMAPVAL(o)       (HBITMAP)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   193
#define _HWNDVal(o)          (HWND)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   194
#define _HPALETTEVal(o)      (HPALETTE)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   195
#define _HCURSORVal(o)       (HCURSOR)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   196
#define _HGDIOBJVal(o)       (HGDIOBJ)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   197
#define _LOGPALETTEVal(o)    (LOGPALETTE *)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   198
#define _COLORREFVal(o)      (COLORREF)(__MKCP(o))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   199
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   200
#define WIDECHAR unsigned short
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   201
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   202
#define WIN32PADDING 32
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   203
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   204
#ifdef DEBUG
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   205
# define DPRINTF(x)              /* printf  x */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   206
# define DFPRINTF(x)             /* fprintf x */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   207
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   208
# define DPRINTF(x)              /* */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   209
# define DFPRINTF(x)             /* */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   210
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   211
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   212
typedef int (*intf)(int);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   213
typedef INT (*INTF)(INT);
3478
45ad75b68d16 Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3457
diff changeset
   214
45ad75b68d16 Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3457
diff changeset
   215
/* PS_JOIN_MASK is missing from the mingw32 headers */
45ad75b68d16 Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3457
diff changeset
   216
#ifndef PS_JOIN_MASK
45ad75b68d16 Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3457
diff changeset
   217
# define PS_JOIN_MASK (PS_JOIN_BEVEL|PS_JOIN_MITER|PS_JOIN_ROUND)
45ad75b68d16 Fix for MINGW32: Define PS_JOIN_MASK as this one is not defined in MING32 headers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3457
diff changeset
   218
#endif
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   219
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   220
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   221
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   222
!WinPrinterContext class methodsFor:'documentation'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   223
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   224
copyright
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   225
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   226
 COPYRIGHT (c) 2006 by eXept Software AG
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   227
	      All Rights Reserved
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   228
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   229
 This software is furnished under a license and may be used
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   230
 only in accordance with the terms of that license and with the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   231
 inclusion of the above copyright notice.   This software may not
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   232
 be provided or otherwise made available to, or used by, any
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   233
 other person.  No title to or ownership of the software is
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   234
 hereby transferred.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   235
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   236
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   237
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   238
documentation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   239
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   240
    I am the mediator between the smalltalk printing protocol
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   241
    (which is the same as the graphics drawing protocol) and the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   242
    windows printer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   243
    When you open a printer, you will typically talk to me.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   244
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   245
    [author:]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   246
	Felix Madrid (fm@exept.de)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   247
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   248
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   249
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   250
!WinPrinterContext class methodsFor:'instance creation'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   251
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   252
fromPrinterInfo: aPrinterInfo
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   253
    | printerContext printerDevice hDC|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   254
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   255
    hDC := aPrinterInfo createDC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   256
    hDC = 0 ifTrue: [ ^self error: 'Error while opening printer.' ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   257
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   258
    printerContext := self new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   259
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   260
    printerDevice := printerContext.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   261
"/    printerDevice := WinPrinter on: aPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   262
"/    printerDevice printerDC:hDC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   263
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   264
    printerContext printerInfo: aPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   265
    printerContext setDevice:printerDevice id:nil gcId:hDC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   266
    printerContext initExtent.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   267
    ^printerContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   268
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   269
    "Created: / 03-08-2006 / 12:53:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   270
    "Modified: / 04-08-2006 / 12:55:01 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   271
    "Modified: / 16-04-2007 / 12:36:26 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   272
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   273
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   274
newPrinter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   275
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   276
    | printer printerInfo|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   277
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   278
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   279
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   280
    printer := WinPrinterContext fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   281
    ^ printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   282
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   283
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   284
openGraphicContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   285
    ^ self openGraphicContextWithoutDialog:false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   286
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   287
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   288
openGraphicContextWithoutDialog:withoutDialog
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   289
    |printerInfo gc|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   290
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   291
    printerInfo := PrintingDialog getPrinterInfoWithoutDialog:withoutDialog.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   292
    printerInfo isNil ifTrue:[^ nil].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   293
    gc := WinPrinterGraphicContext fromPrinterInfo:printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   294
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   295
    gc notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   296
	gc startPrintJob
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   297
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   298
    ^ gc
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   299
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   300
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   301
!WinPrinterContext class methodsFor:'accessing'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   302
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   303
getPrinterInformation:printerNameString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   304
    " Answer the printer information for the printer named printerNameString.  If no name is specified,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   305
      answer the information for the default printer."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   306
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   307
    |h|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   308
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   309
    h := OperatingSystem openPrinter:printerNameString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   310
    ^ OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   311
	getDocumentProperties:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   312
	hPrinter:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   313
	pDeviceName:printerNameString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   314
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   315
    "Created: / 27-07-2006 / 10:22:32 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   316
    "Modified: / 01-08-2006 / 16:01:44 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   317
    "Modified: / 10-10-2006 / 18:57:45 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   318
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   319
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   320
getPrinterInformationString: printerNameString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   321
	" Answer the printer information string from the WIN.INI file
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   322
	for the printer named printerNameString.  If no name is specified,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   323
	answer the information for the default printer. "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   324
    | printerInfo result |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   325
    printerInfo := ( String new: 80 ).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   326
    result := OperatingSystem primGetProfileString: 'windows'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   327
	keyName:  'device'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   328
	default: ( printerNameString isNil ifTrue: [ '' ] ifFalse: [ printerNameString ] )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   329
	returnedString: printerInfo
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   330
	size: printerInfo size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   331
    ^result > 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   332
	ifTrue: [printerInfo copyFrom: 1 to: result]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   333
	ifFalse: ['']
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   334
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   335
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   336
named: aName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   337
    "Answer a new instance of Printer which represents
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   338
     the printer named aName as specified in the host
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   339
     Control Panel."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   340
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   341
    aName isNil ifTrue: [ ^self default ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   342
    ^self new printerInfoWithName: aName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   343
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   344
    "Created: / 27-07-2006 / 17:51:27 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   345
    "Modified: / 02-08-2006 / 17:26:29 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   346
    "Modified: / 10-10-2006 / 17:33:29 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   347
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   348
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   349
postScriptBlackWhite
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   350
    "Returns true if the postscript is b&w or returns false if the postscript is color"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   351
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   352
    ^ PostScriptBlackWhite ? false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   353
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   354
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   355
postScriptBlackWhite: aBoolean
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   356
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   357
    PostScriptBlackWhite := aBoolean
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   358
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   359
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   360
!WinPrinterContext class methodsFor:'not supported yet'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   361
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   362
printAdvancedLines: pairOfPointsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   363
    "Opens a print dialog and prints the given lines"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   364
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   365
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   366
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   367
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   368
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   369
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   370
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   371
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   372
	printer startPrintJob: 'Advanced Lines'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   373
	printer foreground:Color red background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   374
	pairOfPointsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   375
	    do:[:pairOfPointsAndContext |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   376
		 |pairOfPoints|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   377
		 pairOfPoints := pairOfPointsAndContext at:1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   378
		 printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   379
		    lineWidth: (pairOfPointsAndContext at:2);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   380
		    lineStyle: (pairOfPointsAndContext at:3);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   381
		    capStyle: (pairOfPointsAndContext at:4);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   382
		    joinStyle: (pairOfPointsAndContext at:5);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   383
		    foreground: (pairOfPointsAndContext at:6);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   384
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   385
		    displayAdvanceLineFrom: (pairOfPoints at:1)  to: (pairOfPoints at:2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   386
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   387
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   388
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   389
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   390
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   391
     WinPrinterContext printAdvancedLines:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   392
	(Array with: (Array with: (Array with:10@10 with:1000@5000) with: 3 with:#dashed with: #butt with: #miter with: Color green)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   393
	       with: (Array with: (Array with:10@10 with:3500@2000) with: 2 with:#solid  with: #butt with: #miter with: Color yellow)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   394
	       with: (Array with: (Array with:1000@800 with:6000@5000) with: 8 with:#dashed  with: #butt with: #miter with: Color black)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   395
	       with: (Array with: (Array with:2000@2800 with:2000@5000) with: 1 with:#dashed  with: #butt with: #miter with: Color red)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   396
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   397
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   398
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   399
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   400
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   401
    "Modified: / 16-04-2007 / 15:37:41 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   402
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   403
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   404
!WinPrinterContext class methodsFor:'testing'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   405
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   406
computeScaleForPrinter:aPrinter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   407
    ^ Point x:(aPrinter pixelsPerInchOfScreenWidth / Screen current horizontalPixelPerInch)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   408
	    y:(aPrinter pixelsPerInchOfScreenHeight / Screen current verticalPixelPerInch)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   409
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   410
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   411
testPrintingDo:anOneArgBlock
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   412
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   413
    "Opens a print dialog and invokes the action with the printer"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   414
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   415
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   416
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   417
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   418
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   419
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   420
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   421
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   422
    printer startPrintJob: 'Testing'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   423
    anOneArgBlock value:printer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   424
    printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   425
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   426
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   427
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   428
self testPrintingDo:[:aPrinter| |icon|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   429
    aPrinter scale:(self computeScaleForPrinter:aPrinter).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   430
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   431
    aPrinter displayLineFrom:10@10   to:100@10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   432
    aPrinter displayLineFrom:100@10  to:100@100.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   433
    aPrinter displayLineFrom:100@100 to:10@100.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   434
    aPrinter displayLineFrom:10@100  to:10@10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   435
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   436
    icon := XPToolbarIconLibrary eraseXP28x28Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   437
    icon displayOn:aPrinter x:10 y:10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   438
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   439
].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   440
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   441
self testPrintingDo:[:aPrinter| |scale|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   442
    scale := self computeScaleForPrinter:aPrinter.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   443
    aPrinter scale:(1 * scale).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   444
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   445
    aPrinter  font:(Font family:'Arial' face:'medium' size:8).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   446
    aPrinter displayLineFrom:8@16 to:100@16.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   447
    aPrinter displayLineFrom:8@16 to:8@128.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   448
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   449
    'hallo' displayOn:aPrinter x:8 y:16.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   450
    aPrinter scale:(2 * scale).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   451
    'hallo' displayOn:aPrinter x:4 y:32.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   452
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   453
    aPrinter scale:(4 * scale).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   454
    'hallo' displayOn:aPrinter x:2 y:32.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   455
].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   456
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   457
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   458
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   459
!WinPrinterContext class methodsFor:'testing & examples'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   460
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   461
fillCircles: arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   462
    "Opens a print dialog and prints the given circles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   463
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   464
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   465
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   466
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   467
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   468
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   469
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   470
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   471
	printer startPrintJob: 'Fill Circles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   472
	arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   473
	    do:[:pointsAndRadiusWithContextArray |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   474
		printer foreground:(pointsAndRadiusWithContextArray at:3).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   475
		printer fillCircle:(pointsAndRadiusWithContextArray at:1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   476
			radius:(pointsAndRadiusWithContextArray at:2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   477
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   478
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   479
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   480
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   481
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   482
     WinPrinterContext fillCircles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   483
	(Array with: (Array with: 800@800 with: 600 with:Color red)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   484
	       with: (Array with: 1500@1500 with: 1000 with:Color blue)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   485
	       with: (Array with: 4000@2500 with: 2000 with:Color gray))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   486
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   487
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   488
    "Created: / 07-08-2006 / 11:46:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   489
    "Modified: / 16-04-2007 / 15:37:34 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   490
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   491
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   492
fillHatchCircles: arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   493
    "Opens a print dialog and prints the given circles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   494
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   495
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   496
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   497
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   498
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   499
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   500
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   501
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   502
	printer startPrintJob: 'Fill Hatch Circles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   503
	arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   504
	    do:[:pointsAndRadiusWithContextArray |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   505
		| point radius color hatch|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   506
		point := (pointsAndRadiusWithContextArray at:1).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   507
		radius := (pointsAndRadiusWithContextArray at:2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   508
		color := (pointsAndRadiusWithContextArray at:3).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   509
		hatch := (pointsAndRadiusWithContextArray at:4).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   510
		printer foreground: color;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   511
			hatch: hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   512
		printer fillCircle:point
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   513
			radius:radius.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   514
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   515
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   516
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   517
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   518
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   519
     WinPrinterContext fillHatchCircles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   520
	(Array with: (Array with: 800@800 with: 600 with:Color red with: #diagonalCross)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   521
	       with: (Array with: 1500@1500 with: 1000 with:Color blue with: #vertical)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   522
	       with: (Array with: 4000@2500 with: 2000 with:Color gray with: #bDiagonal))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   523
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   524
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   525
    "Created: / 07-08-2006 / 11:46:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   526
    "Modified: / 16-04-2007 / 15:37:34 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   527
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   528
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   529
fillHatchPolygons: polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   530
    "Opens a print dialog and prints the given polygons"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   531
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   532
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   533
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   534
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   535
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   536
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   537
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   538
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   539
	printer startPrintJob: 'Fill Hatch Polygons'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   540
	polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   541
	    do:[:polygonWithContextArray |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   542
		 |aPolygon color hatch|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   543
		 aPolygon := polygonWithContextArray at: 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   544
		 color := (polygonWithContextArray at: 2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   545
		 hatch := (polygonWithContextArray at: 3).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   546
		 printer foreground: color;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   547
			 hatch: hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   548
		 aPolygon displayFilledOn: printer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   549
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   550
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   551
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   552
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   553
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   554
     WinPrinterContext fillHatchPolygons:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   555
	(Array with: (Array with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   556
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   557
				    with:100@100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   558
				    with:600@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   559
				    with:3500@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   560
				    with:100@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   561
				    with:100@100))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   562
			    with: Color red
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   563
			    with: #cross)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   564
		with: (Array with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   565
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   566
				    with:1000@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   567
				    with:1000@2000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   568
				    with:2000@1000))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   569
			     with: Color blue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   570
			     with: #none)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   571
    )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   572
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   573
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   574
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   575
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   576
    "Modified: / 16-04-2007 / 15:37:43 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   577
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   578
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   579
fillHatchRectangles: rectanglesWithHatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   580
    "Opens a print dialog and prints the given rectangles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   581
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   582
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   583
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   584
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   585
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   586
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   587
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   588
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   589
	printer startPrintJob: 'Fill Hatch Rectangles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   590
	printer foreground:Color blue background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   591
	rectanglesWithHatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   592
	    do:[:rectangleWithHatch |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   593
		|rectangle hatch|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   594
		rectangle := rectangleWithHatch at: 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   595
		hatch := rectangleWithHatch at: 2.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   596
		printer hatch: hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   597
		printer fillRectangleX: rectangle origin x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   598
			y: rectangle origin y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   599
			width: rectangle width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   600
			height: rectangle height.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   601
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   602
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   603
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   604
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   605
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   606
     WinPrinterContext fillHatchRectangles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   607
	(Array with: (Array with: (Rectangle left:20 top:20 width:400 height:600) with: #horizontal)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   608
	       with: (Array with: (Rectangle left:500 top:700 width:600 height:400) with: #vertical)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   609
	       with: (Array with: (Rectangle left:800 top:1000 width:1600 height:2000) with: #cross)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   610
	       with: (Array with: (Rectangle left:1040 top:1240 width:3000 height:3000) with: #bDiagonal)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   611
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   612
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   613
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   614
    "Created: / 07-08-2006 / 11:40:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   615
    "Modified: / 16-04-2007 / 15:37:46 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   616
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   617
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   618
fillPolygons: polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   619
    "Opens a print dialog and prints the given polygons"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   620
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   621
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   622
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   623
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   624
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   625
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   626
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   627
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   628
	printer startPrintJob: 'Fill Polygons'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   629
	polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   630
	    do:[:polygonWithContextArray |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   631
		 |aPolygon|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   632
		 aPolygon := polygonWithContextArray at: 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   633
		 printer foreground:(polygonWithContextArray at: 2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   634
		 aPolygon displayFilledOn: printer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   635
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   636
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   637
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   638
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   639
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   640
     WinPrinterContext fillPolygons:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   641
	(Array with: (Array with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   642
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   643
				    with:100@100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   644
				    with:600@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   645
				    with:3500@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   646
				    with:100@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   647
				    with:100@100))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   648
			    with: Color red)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   649
		with: (Array with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   650
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   651
				    with:1000@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   652
				    with:1000@2000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   653
				    with:2000@1000))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   654
			     with: Color blue)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   655
    )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   656
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   657
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   658
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   659
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   660
    "Modified: / 16-04-2007 / 15:37:43 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   661
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   662
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   663
fillRectangles: rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   664
    "Opens a print dialog and prints the given rectangles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   665
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   666
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   667
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   668
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   669
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   670
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   671
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   672
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   673
	printer startPrintJob: 'Fill Rectangles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   674
	printer foreground:Color blue background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   675
	rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   676
	    do:[:rectangle |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   677
		printer fillRectangleX: rectangle origin x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   678
			y: rectangle origin y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   679
			width: rectangle width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   680
			height: rectangle height.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   681
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   682
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   683
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   684
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   685
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   686
     WinPrinterContext fillRectangles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   687
	(Array with: (Rectangle left:20 top:20 width:400 height:600)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   688
	       with: (Rectangle left:500 top:700 width:600 height:400)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   689
	       with: (Rectangle left:800 top:1000 width:1600 height:2000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   690
	       with: (Rectangle left:1040 top:1240 width:3000 height:3000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   691
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   692
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   693
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   694
    "Created: / 07-08-2006 / 11:40:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   695
    "Modified: / 16-04-2007 / 15:37:46 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   696
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   697
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   698
print: aString font: aFont title: aTitle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   699
    "Open a print dialog to allow printing of the given string
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   700
     using the given title & font."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   701
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   702
    self print: aString font: aFont title: aTitle wordWrap: false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   703
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   704
   "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   705
    WinPrinterContext print: 'Holaaaa!! (from:  WinPrinterContext>>print:aString font:aFont title:aTitle)' font: nil title: 'Printing Test'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   706
    WinPrinterContext print: (WinPrinterContext class sourceCodeAt:#'print:font:title:wordWrap:') font: nil title: 'Printing Test String'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   707
    WinPrinterContext print: (WinPrinterContext class sourceCodeAt:#'print:font:title:wordWrap:') font: (Font family:'Arial' face:'medium' size:8) title: 'Printing Test String'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   708
   "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   709
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   710
    "Created: / 27-07-2006 / 17:52:33 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   711
    "Modified: / 03-08-2006 / 18:52:31 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   712
    "Modified: / 16-04-2007 / 13:54:40 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   713
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   714
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   715
print: aString font: aFont title: aTitle wordWrap: wordWrap
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   716
    "Open a print dialog to allow printing of the given string
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   717
     using the given title & font."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   718
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   719
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   720
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   721
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   722
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   723
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   724
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   725
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   726
	printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   727
	    print: aString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   728
	    font: aFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   729
	    title: aTitle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   730
	    wordWrap: wordWrap
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   731
	    marginsRect: nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   732
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   733
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   734
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   735
     WinPrinterContext print: 'Holaaaa!! (from:  PrinterContext>>print:aString font:aFont title:aTitle)' font: nil title: 'Printing Test' wordWrap: true
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   736
     WinPrinterContext print: (WinPrinterContext class sourceCodeAt:#'print:font:title:wordWrap:') font:nil title:'Printing Test String' wordWrap:true
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   737
     WinPrinterContext print: (WinPrinterContext class sourceCodeAt:#'print:font:title:wordWrap:') font: (Font family:'Arial' face:'medium' size:8) title: 'Printing Test String' wordWrap: true
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   738
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   739
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   740
    "Created: / 03-08-2006 / 18:51:53 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   741
    "Modified: / 16-04-2007 / 15:37:31 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   742
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   743
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   744
printCircles: arrayOfPointsAndRadius
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   745
    "Opens a print dialog and prints the given circles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   746
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   747
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   748
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   749
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   750
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   751
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   752
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   753
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   754
	printer startPrintJob: 'Circles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   755
	printer foreground:Color green background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   756
	arrayOfPointsAndRadius
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   757
	    do:[:pointAndRadius |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   758
		printer displayCircle:(pointAndRadius at:1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   759
			radius:(pointAndRadius at:2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   760
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   761
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   762
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   763
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   764
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   765
     WinPrinterContext printCircles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   766
	(Array with: (Array with: 800@800 with: 600)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   767
	       with: (Array with: 1500@1500 with: 1000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   768
	       with: (Array with: 4000@2500 with: 2000))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   769
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   770
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   771
    "Created: / 07-08-2006 / 11:46:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   772
    "Modified: / 16-04-2007 / 15:37:34 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   773
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   774
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   775
printCirclesIn: rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   776
    "Opens a print dialog and prints the given circles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   777
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   778
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   779
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   780
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   781
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   782
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   783
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   784
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   785
	printer startPrintJob: 'Circles In Rectangles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   786
	rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   787
	   do:[:rectangle |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   788
	       printer displayCircleIn: rectangle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   789
	   ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   790
       printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   791
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   792
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   793
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   794
     WinPrinterContext printCirclesIn:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   795
	(Array with: (Rectangle left:20 top:20 width:400 height:600)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   796
	       with: (Rectangle left:40 top:40 width:600 height:400)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   797
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   798
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   799
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   800
    "Created: / 07-08-2006 / 11:48:46 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   801
    "Modified: / 16-04-2007 / 15:37:38 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   802
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   803
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   804
printImage: anImage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   805
    "Opens a print dialog and prints the given image"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   806
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   807
    self printImage: anImage magnification:1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   808
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   809
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   810
     WinPrinterContext printImage: (Image fromFile:'C:\vsw311\pavheadr.gif').
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   811
     WinPrinterContext printImage: XPToolbarIconLibrary help32x32Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   812
     WinPrinterContext printImage: XPToolbarIconLibrary eraseXP28x28Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   813
     WinPrinterContext printImage: XPToolbarIconLibrary saveImageBlack22x22Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   814
     WinPrinterContext printImage: XPToolbarIconLibrary changesBrowser18x22Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   815
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   816
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   817
    "Created: / 07-08-2006 / 11:46:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   818
    "Modified: / 16-04-2007 / 15:37:34 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   819
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   820
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   821
printImage:anImage magnification:factor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   822
    "Opens a print dialog and prints the given image"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   823
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   824
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   825
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   826
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   827
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   828
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   829
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   830
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   831
	printer startPrintJob: 'Image'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   832
	printer background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   833
	(anImage magnifiedBy:factor) displayOn:printer x:0 y:0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   834
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   835
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   836
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   837
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   838
     WinPrinterContext printImage: (Image fromFile:'C:\vsw311\pavheadr.gif').
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   839
     WinPrinterContext printImage: XPToolbarIconLibrary help32x32Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   840
     WinPrinterContext printImage: XPToolbarIconLibrary eraseXP28x28Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   841
     WinPrinterContext printImage: XPToolbarIconLibrary saveImageBlack22x22Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   842
     WinPrinterContext printImage: XPToolbarIconLibrary changesBrowser18x22Icon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   843
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   844
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   845
    "Created: / 07-08-2006 / 11:46:52 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   846
    "Modified: / 16-04-2007 / 15:37:34 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   847
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   848
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   849
printLines: pairOfPointsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   850
    "Opens a print dialog and prints the given lines"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   851
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   852
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   853
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   854
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   855
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   856
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   857
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   858
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   859
	printer startPrintJob: 'Lines'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   860
	pairOfPointsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   861
	    do:[:pairOfPointsAndContext |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   862
		 |pairOfPoints|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   863
		 pairOfPoints := pairOfPointsAndContext at: 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   864
		 printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   865
		    foreground:(pairOfPointsAndContext at:2);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   866
		    lineWidth: (pairOfPointsAndContext at:3);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   867
		    lineStyle: (pairOfPointsAndContext at:4);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   868
		    displayLineFrom: (pairOfPoints at:1)  to: (pairOfPoints at:2).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   869
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   870
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   871
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   872
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   873
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   874
     WinPrinterContext printLines:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   875
	(Array with: (Array with:(Array with:10@10 with:1000@5000) with: Color red with:4 with: #solid)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   876
	       with: (Array with:(Array with:10@10 with:3500@2000) with: Color blue with:1 with: #dashed)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   877
	       with: (Array with:(Array with:1000@800 with:6000@5000) with: Color black with: 1 with:#dotted)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   878
	       with: (Array with: (Array with:2000@2800 with:2000@5000) with: Color green with:8 with: nil))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   879
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   880
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   881
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   882
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   883
    "Modified: / 16-04-2007 / 15:37:41 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   884
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   885
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   886
printPoints: aCollectionOfPoints
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   887
    "Opens a print dialog and prints the given points"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   888
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   889
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   890
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   891
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   892
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   893
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   894
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   895
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   896
	printer startPrintJob: 'Points'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   897
	aCollectionOfPoints do:[:each |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   898
	    printer displayPointX: each x y: each y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   899
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   900
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   901
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   902
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   903
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   904
     WinPrinterContext printPoints:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   905
	(Array with: (10 @ 10)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   906
	       with: (500 @ 700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   907
	       with: (900 @ 1000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   908
	       with: (1500 @ 1700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   909
	       with: (2100 @ 2000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   910
	       with: (2500 @ 2700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   911
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   912
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   913
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   914
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   915
printPolygons: polygons
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   916
    "Opens a print dialog and prints the given polygons"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   917
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   918
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   919
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   920
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   921
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   922
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   923
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   924
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   925
	printer startPrintJob: 'Polygons'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   926
	printer foreground:Color black background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   927
	polygons
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   928
	    do:[:aPolygon |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   929
		 aPolygon displayStrokedOn: printer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   930
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   931
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   932
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   933
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   934
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   935
     WinPrinterContext printPolygons:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   936
	(Array with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   937
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   938
				    with:100@100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   939
				    with:600@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   940
				    with:3500@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   941
				    with:100@4000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   942
				    with:100@100))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   943
		with: (Polygon vertices:(
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   944
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   945
				    with:1000@1000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   946
				    with:1000@2000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   947
				    with:2000@1000)))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   948
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   949
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   950
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   951
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   952
    "Modified: / 16-04-2007 / 15:37:43 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   953
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   954
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   955
printPolylines: evenCollectionOfPoints
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   956
    "Opens a print dialog and prints the given rectangles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   957
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   958
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   959
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   960
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   961
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   962
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   963
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   964
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   965
	printer startPrintJob: 'Polylines'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   966
	printer displayPolylines:evenCollectionOfPoints.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   967
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   968
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   969
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   970
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   971
     WinPrinterContext printPolylines:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   972
	(Array with: (10 @ 10)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   973
	       with: (500 @ 700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   974
	       with: (900 @ 1000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   975
	       with: (1500 @ 1700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   976
	       with: (2100 @ 2000)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   977
	       with: (2500 @ 2700)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   978
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   979
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   980
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   981
    "Created: / 07-08-2006 / 11:40:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   982
    "Modified: / 16-04-2007 / 15:37:46 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   983
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   984
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   985
printRectangles: rectanglesWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   986
    "Opens a print dialog and prints the given rectangles"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   987
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   988
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   989
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   990
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   991
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   992
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   993
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   994
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   995
	printer startPrintJob: 'Rectangles'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   996
	printer foreground:Color red background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   997
	rectanglesWithContextArray do:[:rectangleWithContextArray |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   998
	    |rectangle|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   999
	    rectangle := rectangleWithContextArray at: 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1000
	    printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1001
		foreground:(rectangleWithContextArray at:2);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1002
		lineWidth: (rectangleWithContextArray at:3);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1003
		lineStyle: (rectangleWithContextArray at:4);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1004
		displayRectangleX: rectangle origin x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1005
			y: rectangle origin y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1006
			width: rectangle width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1007
			height: rectangle height.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1008
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1009
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1010
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1011
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1012
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1013
     WinPrinterContext printRectangles:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1014
	(Array with: (Array with: (Rectangle left:30 top:10 width:400 height:600) with: Color red with:4 with: #solid)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1015
	       with: (Array with: (Rectangle left:100 top:140 width:700 height:800) with: Color blue with:1 with: #dashed)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1016
	       with: (Array with: (Rectangle left:800 top:1500 width:2600 height:3400) with: Color green with:1 with: #dotted)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1017
	       with: (Array with: (Rectangle left:1000 top:1200 width:1400 height:1600) with: Color gray with:8 with: #dashed)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1018
	       with: (Array with: (Rectangle left:2600 top:1200 width:1400 height:1600) with: Color darkGray with:1 with: #dashDotDot)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1019
	)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1020
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1021
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1022
    "Created: / 07-08-2006 / 11:40:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1023
    "Modified: / 16-04-2007 / 15:37:46 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1024
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1025
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1026
printStrings: stringAndPositionsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1027
    "Opens a print dialog and prints the given strings"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1028
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1029
    | printerInfo printer |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1030
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1031
    printerInfo := PrintingDialog getPrinterInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1032
    printerInfo isNil ifTrue:[^self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1033
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1034
    printer := self fromPrinterInfo: printerInfo.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1035
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1036
	printer startPrintJob: 'Strings with Position'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1037
	printer foreground:Color black background:Color white.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1038
	stringAndPositionsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1039
	    do:[:pairOfPointsAndPosition |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1040
		 printer displayString:(pairOfPointsAndPosition at: 1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1041
			    x:(pairOfPointsAndPosition at: 2) x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1042
			    y:(pairOfPointsAndPosition at: 2) y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1043
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1044
	printer endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1045
    ] forkAt: 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1046
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1047
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1048
     WinPrinterContext printStrings:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1049
	(Array with: (Array with:'Testing printing with standard method' with:10@10)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1050
	       with: (Array with:'Another test string to print' with:80@200))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1051
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1052
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1053
    "Created: / 07-08-2006 / 12:09:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1054
    "Modified: / 07-08-2006 / 14:11:17 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1055
    "Modified: / 16-04-2007 / 15:37:49 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1056
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1057
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1058
!WinPrinterContext methodsFor:'accessing'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1059
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1060
depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1061
    ^ 24
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1062
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1063
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1064
deviceColors
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1065
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1066
    ^#()
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1067
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1068
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1069
deviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1070
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1071
    deviceFonts isNil ifTrue:[deviceFonts := CachingRegistry new cacheSize:10.].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1072
    ^deviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1073
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1074
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1075
getCharHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1076
    "Private - answer the height of the font selected in the receiver's
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1077
     device context."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1078
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1079
    |textMetrics answer|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1080
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1081
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1082
    textMetrics := Win32OperatingSystem::TextMetricsStructure new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1083
"/    (OperatingSystem getTextMetrics:gcId lpMetrics:textMetrics) ifFalse:[ ^ self error ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1084
"/    Transcript showCR: 'CHAR HEIGHT PRIM ******* ', '   ',  (textMetrics tmHeight + textMetrics tmExternalLeading) printString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1085
"/    Transcript showCR: 'CHAR HEIGHT DEVICE ***** ', '   ', (self font heightOf:'PQWEXCZ' on:self device) printString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1086
    answer := (self font heightOf:'PQWEXCZ' on:self device).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1087
"/    answer := textMetrics tmHeight + textMetrics tmExternalLeading.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1088
    ^answer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1089
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1090
    "Created: / 02-08-2006 / 17:47:20 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1091
    "Modified: / 03-08-2006 / 10:09:01 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1092
    "Modified: / 10-10-2006 / 18:15:17 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1093
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1094
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1095
getLogicalPixelSizeX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1096
    ^ printerInfo printQuality ? 600
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1097
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1098
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1099
getLogicalPixelSizeY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1100
    ^ printerInfo printQuality ? 600
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1101
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1102
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1103
numberOfColorBitsPerPixel
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1104
    ^ OperatingSystem getDeviceCaps:self gcId index:12 "Bitspixel"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1105
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1106
    "Created: / 03-08-2006 / 09:58:18 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1107
    "Modified: / 10-10-2006 / 18:15:40 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1108
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1109
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1110
physicalOffsetX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1111
    ^ OperatingSystem getDeviceCaps:self gcId index:112 "PhysicalOffsetX"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1112
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1113
    "Created: / 01-08-2006 / 16:28:34 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1114
    "Modified: / 16-04-2007 / 12:52:06 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1115
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1116
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1117
physicalOffsetY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1118
    ^ OperatingSystem getDeviceCaps:self gcId index:113 "PhysicalOffsetY"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1119
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1120
    "Created: / 01-08-2006 / 16:28:34 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1121
    "Modified: / 16-04-2007 / 12:52:01 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1122
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1123
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1124
pixelsPerInchOfScreenHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1125
    ^ OperatingSystem getDeviceCaps:self gcId index:90 "Logpixelsy"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1126
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1127
    "Created: / 01-08-2006 / 16:29:16 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1128
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1129
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1130
pixelsPerInchOfScreenWidth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1131
    ^ OperatingSystem getDeviceCaps:self gcId index:88 "Logpixelsx"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1132
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1133
    "Created: / 01-08-2006 / 16:28:34 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1134
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1135
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1136
printerHeightArea
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1137
    ^ (OperatingSystem getDeviceCaps:self gcId index:10)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1138
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1139
    "Modified: / 10-10-2006 / 18:18:31 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1140
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1141
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1142
printerPhysicalHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1143
    ^ OperatingSystem getDeviceCaps:self gcId "deviceContext" index:111 "PhysicalHeight"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1144
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1145
    "Created: / 01-08-2006 / 16:14:08 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1146
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1147
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1148
printerPhysicalWidth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1149
    ^ OperatingSystem getDeviceCaps:self gcId "deviceContext" index:110 "PhysicalWidth"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1150
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1151
    "Created: / 01-08-2006 / 16:14:08 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1152
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1153
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1154
printerWidthArea
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1155
    ^ OperatingSystem getDeviceCaps:self gcId "deviceContext" index:8 "Horzres"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1156
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1157
    "Created: / 01-08-2006 / 16:14:08 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1158
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1159
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1160
supportedImageFormats
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1161
    "return an array with supported image formats; each array entry
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1162
     is another array, consisting of depth and bitsPerPixel values."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1163
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1164
    |info|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1165
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1166
    info := IdentityDictionary new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1167
    info at:#depth put:self depth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1168
    info at:#bitsPerPixel put:self depth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1169
    info at:#padding put:32.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1170
    ^ Array with:info
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1171
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1172
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1173
     Disply supportedImageFormats
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1174
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1175
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1176
    "Modified: / 10.9.1998 / 23:14:05 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1177
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1178
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1179
visualType
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1180
    ^ #TrueColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1181
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1182
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1183
!WinPrinterContext methodsFor:'color stuff'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1184
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1185
colorScaledRed:r scaledGreen:g scaledBlue:b
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1186
    "allocate a color with rgb values (0..16rFFFF) - return the color index
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1187
     (i.e. colorID)"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1188
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1189
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1190
    int id, ir, ig, ib;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1191
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1192
    if (__bothSmallInteger(r, g) && __isSmallInteger(b)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1193
	ir = (__intVal(r) >> 8) & 0xff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1194
	ig = (__intVal(g) >> 8) & 0xff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1195
	ib = (__intVal(b) >> 8) & 0xff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1196
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1197
	id = RGB( ir, ig, ib);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1198
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1199
	RETURN ( __MKSMALLINT(id) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1200
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1201
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1202
    self primitiveFailed.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1203
    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1204
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1205
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1206
setBackground:bgColorIndex in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1207
    "set background color to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1208
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1209
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1210
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1211
    HDC hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1212
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1213
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1214
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1215
	COLORREF bg, oldBg;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1216
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1217
	oldBg = GetBkColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1218
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1219
	bg = __intVal(bgColorIndex) & 0xffffff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1220
/*        bg = (COLORREF)st2RGB(__intVal(bgColorIndex),gcData);         */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1221
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1222
	if (bg != oldBg) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1223
	    SetBkColor(hDC, bg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1224
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1225
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1226
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1227
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1228
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1229
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1230
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1231
setBackgroundColor:color in:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1232
    "set background color to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1233
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1234
    |colorId deviceColor|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1235
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1236
    (color isOnDevice:self) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1237
	colorId := color colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1238
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1239
	deviceColor := color onDevice:self.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1240
	deviceColor notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1241
	    colorId := deviceColor colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1242
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1243
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1244
    colorId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1245
	'DeviceWorkstation [warning]: could not set bg color' infoPrintCR.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1246
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1247
	self setBackground:colorId in:aGCId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1248
    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1249
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1250
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1251
setForeground:fgColorIndex background:bgColorIndex in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1252
    "set foreground and background colors to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1253
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1254
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1255
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1256
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1257
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1258
	COLORREF fg, bg, oldFg, oldBg;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1259
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1260
/*        fg = (COLORREF)st2RGB(__intVal(fgColorIndex),gcData);    */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1261
	fg = __intVal(fgColorIndex) & 0xffffff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1262
/*        bg = (COLORREF)st2RGB(__intVal(bgColorIndex),gcData);    */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1263
	bg = __intVal(bgColorIndex) & 0xffffff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1264
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1265
	oldFg = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1266
	oldBg = GetBkColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1267
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1268
	if ((fg != oldFg) || (bg != oldBg)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1269
	    /* Pen only depends upon fg-color */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1270
	    if (fg != oldFg) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1271
		SetTextColor(hDC, fg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1272
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1273
	    if (bg != oldBg) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1274
		SetBkColor(hDC, bg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1275
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1276
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1277
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1278
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1279
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1280
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1281
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1282
setForeground:fgColorIndex in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1283
    "set foreground color to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1284
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1285
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1286
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1287
    HDC hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1288
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1289
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1290
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1291
	COLORREF fg, oldFg;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1292
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1293
	oldFg = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1294
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1295
	fg = __intVal(fgColorIndex) & 0xffffff;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1296
/*        fg = (COLORREF)st2RGB(__intVal(fgColorIndex),gcData);         */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1297
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1298
	if (fg != oldFg) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1299
	    SetTextColor(hDC, fg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1300
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1301
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1302
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1303
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1304
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1305
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1306
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1307
setForegroundColor:color in:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1308
    "set the foreground color to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1309
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1310
    |colorId deviceColor|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1311
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1312
    (color isOnDevice:self) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1313
	colorId := color colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1314
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1315
	deviceColor := color onDevice:self.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1316
	deviceColor notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1317
	    colorId := deviceColor colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1318
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1319
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1320
    colorId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1321
	'DeviceWorkstation [warning]: could not set fg color' infoPrintCR.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1322
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1323
	self setForeground:colorId in:aGCId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1324
    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1325
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1326
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1327
!WinPrinterContext methodsFor:'context stuff'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1328
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1329
getPenFor:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1330
    "set line attributes"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1331
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1332
    | lineWidthObj lineStyleObj capStyleObj joinStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1333
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1334
	lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1335
	lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1336
	 capStyleObj := self capStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1337
	joinStyleObj := self joinStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1338
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1339
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1340
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1341
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1342
     && __isSmallInteger(lineWidthObj)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1343
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1344
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1345
	HANDLE hPen, prevPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1346
	int lineStyleInt, capStyleInt, joinStyleInt, lineWidth;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1347
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1348
	lineWidth= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1349
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1350
	if (lineStyleObj == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1351
	    lineStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1352
	} else if (lineStyleObj == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1353
	    lineStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1354
	} else if (lineStyleObj == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1355
	    lineStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1356
	} else if (lineStyleObj == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1357
	    lineStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1358
	} else if (lineStyleObj == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1359
	    lineStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1360
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1361
	    lineStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1362
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1363
	if (capStyleObj == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1364
	    capStyleInt= PS_ENDCAP_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1365
	} else if (capStyleObj == @symbol(square)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1366
	    capStyleInt= PS_ENDCAP_SQUARE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1367
	} else if (capStyleObj == @symbol(flat)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1368
	    capStyleInt= PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1369
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1370
	    capStyleInt= PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1371
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1372
	if (joinStyleObj == @symbol(bevel)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1373
	    joinStyleInt= PS_JOIN_BEVEL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1374
	} else if (joinStyleObj== @symbol(miter)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1375
	    joinStyleInt= PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1376
	} else if (joinStyleObj == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1377
	    joinStyleInt= PS_JOIN_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1378
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1379
	    joinStyleInt= PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1380
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1381
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1382
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1383
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1384
	hPen = CreatePen(lineStyleInt | capStyleInt | joinStyleInt, lineWidth, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1385
	prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1386
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1387
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1388
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1389
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1390
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1391
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1392
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1393
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1394
getPenForContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1395
    "set line attributes"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1396
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1397
   | gcId  lineWidthObj lineStyleObj capStyleObj joinStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1398
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1399
   gcId := self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1400
	lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1401
	lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1402
	 capStyleObj := self capStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1403
	joinStyleObj := self joinStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1404
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1405
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1406
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1407
    if (__isExternalAddressLike(gcId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1408
     && __isSmallInteger(lineWidthObj) ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1409
	HANDLE hDC = (HANDLE)(__externalAddressVal(gcId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1410
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1411
	HANDLE hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1412
	int lineStyleInt, capStyleInt, joinStyleInt, lineWidth;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1413
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1414
	lineWidth= lineWidthObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1415
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1416
	if (lineStyleObj == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1417
	    lineStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1418
	} else if (lineStyleObj == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1419
	    lineStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1420
	} else if (lineStyleObj == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1421
	    lineStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1422
	} else if (lineStyleObj == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1423
	    lineStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1424
	} else if (lineStyleObj == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1425
	    lineStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1426
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1427
	    lineStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1428
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1429
	if (capStyleObj == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1430
	    capStyleInt= PS_ENDCAP_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1431
	} else if (capStyleObj == @symbol(square)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1432
	    capStyleInt= PS_ENDCAP_SQUARE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1433
	} else if (capStyleObj == @symbol(flat)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1434
	    capStyleInt= PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1435
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1436
	    capStyleInt= PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1437
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1438
	if (joinStyleObj == @symbol(bevel)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1439
	    joinStyleInt= PS_JOIN_BEVEL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1440
	} else if (joinStyleObj == @symbol(miter)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1441
	    joinStyleInt= PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1442
	} else if (joinStyleObj== @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1443
	    joinStyleInt= PS_JOIN_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1444
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1445
	    joinStyleInt= PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1446
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1447
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1448
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1449
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1450
	hPen = CreatePen(lineStyleInt | capStyleInt | joinStyleInt, lineWidth, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1451
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1452
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1453
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1454
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1455
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1456
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1458
hatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1459
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1460
    "The hatch style will define a hatched brush between these patterns:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1461
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1462
       #none
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1463
       #horizontal              -----       HS_HORIZONTAL = 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1464
       #vertical                |||||       HS_VERTICAL = 1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1465
       #fDiagonal               \\\\\       HS_FDIAGONAL = 2
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1466
       #bDiagonal               /////       HS_BDIAGONAL = 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1467
       #cross                   +++++       HS_CROSS = 4
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1468
       #diagonalCross           xxxxx       HS_DIAGCROSS = 5
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1469
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1470
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1471
    hatch isNil ifTrue:[^#none].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1472
    ^ hatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1473
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1474
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1475
hatch: aSymbol
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1476
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1477
    "The hatch style will define a hatched brush between these patterns:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1478
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1479
       #none
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1480
       #horizontal              -----       HS_HORIZONTAL = 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1481
       #vertical                |||||       HS_VERTICAL = 1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1482
       #fDiagonal               \\\\\       HS_FDIAGONAL = 2
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1483
       #bDiagonal               /////       HS_BDIAGONAL = 3
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1484
       #cross                   +++++       HS_CROSS = 4
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1485
       #diagonalCross           xxxxx       HS_DIAGCROSS = 5
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1486
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1487
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1488
    hatch := aSymbol
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1489
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1490
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1491
noClipIn:aWindowId gc:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1492
    "disable clipping rectangle"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1493
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1494
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1495
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1496
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1497
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1498
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1499
	SelectClipRgn(hDC, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1500
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1501
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1502
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1503
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1504
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1505
platformName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1506
    "used by #fillRoundRectangleX ...."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1507
    ^ Smalltalk platformName asUppercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1508
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1509
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1510
setBitmapMask:aBitmapId in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1511
    "set or clear the drawing mask - a bitmap mask using current fg/bg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1512
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1513
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1514
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1515
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1516
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1517
	HBITMAP oldM;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1518
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1519
/*        oldM = gcData->hMask;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1520
	if (__isExternalAddress(aBitmapId))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1521
	    gcData->hMask = _HBITMAPVAL(aBitmapId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1522
	else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1523
	    gcData->hMask = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1524
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1525
	if (oldM != gcData->hMask) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1526
	  FLUSH_CACHED_DC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1527
	    CPRINTF(("masks set to %x\n",gcData->hMask));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1528
	}                                                     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1529
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1530
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1531
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1532
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1533
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1534
setClipX:clipX y:clipY width:clipWidth height:clipHeight in:ignoredDrawableId gc:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1535
    "clip to a rectangle"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1536
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1537
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1538
      p--w---
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1539
      |     |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1540
      h     |  the clipping rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1541
      |     |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1542
      -------
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1543
	  where p = ( clipX, clipY ), w = clipWidth, h = clipHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1544
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1545
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1546
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1547
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1548
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1549
     && __bothSmallInteger(clipX, clipY)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1550
     && __bothSmallInteger(clipWidth, clipHeight) ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1551
	HANDLE hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1552
	int cX, cY, cW, cH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1553
	POINT ptOrg;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1554
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1555
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1556
	hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1557
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1558
	GetViewportOrgEx(hDC,&ptOrg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1559
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1560
	// set the clip rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1561
	// and offset the rectangle by the viewport origin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1562
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1563
	cX = __intVal(clipX) + ptOrg.x;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1564
	cY = __intVal(clipY) + ptOrg.y;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1565
	cW = __intVal(clipWidth)+ ptOrg.x;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1566
	cH = __intVal(clipHeight)+ ptOrg.y;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1567
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1568
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1569
	    HRGN region = CreateRectRgn(cX, cY, cX + cW, cY + cH);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1570
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1571
	    if (region == NULL ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1572
		console_fprintf(stderr, "WinWorkstat [warning]: clipping region creation failed\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1573
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1574
		if (SelectClipRgn(hDC, region) == ERROR ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1575
		    console_fprintf(stderr, "WinWorkstat [warning]: select clipping region failed\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1576
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1577
		DeleteObject(region);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1578
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1579
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1580
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1581
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1582
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1583
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1584
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1585
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1586
setDashes:dashList dashOffset:offset in:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1587
    "set line attributes"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1588
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1589
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1590
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1591
    if (__isExternalAddressLike(aGCId)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1592
	DPRINTF(("WinWorkstat [warning]: dashes not (yet) implemented\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1593
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1594
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1595
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1596
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1597
setLineWidth:aNumber style:lineStyle cap:capStyle join:joinStyle in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1598
    "set line attributes"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1599
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1600
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1601
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1602
    HDC hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1603
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1604
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1605
     && __isSmallInteger(aNumber)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1606
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1607
	int style;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1608
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1609
	if (lineStyle == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1610
	    style = PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1611
	} else if (lineStyle == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1612
	    style= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1613
	} else if (lineStyle == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1614
	    style= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1615
	} else if (lineStyle == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1616
	    style= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1617
	} else if (lineStyle == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1618
	    style= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1619
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1620
	    style= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1621
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1622
	if (capStyle == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1623
	    style = PS_ENDCAP_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1624
	} else if (capStyle == @symbol(square)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1625
	    style = PS_ENDCAP_SQUARE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1626
	} else if (capStyle == @symbol(flat)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1627
	    style = PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1628
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1629
	    style = PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1630
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1631
	if (joinStyle == @symbol(bevel)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1632
	    style = PS_JOIN_BEVEL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1633
	} else if (joinStyle == @symbol(miter)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1634
	    style = PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1635
	} else if (joinStyle == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1636
	    style = PS_JOIN_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1637
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1638
	    style = PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1639
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1640
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1641
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1642
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1643
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1644
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1645
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1646
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1647
setMaskOriginX:orgX y:orgY in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1648
    "set the mask origin"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1649
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1650
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1651
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1652
    if (__isExternalAddress(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1653
     && __bothSmallInteger(orgX,orgY)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1654
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1655
	int oX, oY, maskOrgX, maskOrgY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1656
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1657
	oX = __intVal(orgX);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1658
	oY = __intVal(orgY);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1659
	if ((oX != maskOrgX)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1660
	 || (oY != maskOrgY)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1661
	    maskOrgX = __intVal(orgX);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1662
	    maskOrgY = __intVal(orgY);;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1663
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1664
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1665
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1666
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1667
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1668
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1669
setViewportOrg: aPoint
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1670
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1671
    "Sets the viewport origin (LOGICAL point (0,0)) of the device context"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1672
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1673
    ^ OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1674
	    setViewportOrg: self gcId "deviceContext"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1675
	    x: aPoint x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1676
	    y: aPoint y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1677
	    oldOrigin: nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1678
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1679
    "Created: / 01-08-2006 / 16:14:08 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1680
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1681
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1682
!WinPrinterContext methodsFor:'drawing'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1683
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1684
displayArcX:x y:y width:width height:height from:startAngle angle:angle in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1685
    "draw an arc. If any of x,y, w or h is not an integer, an error is triggered.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1686
     The angles may be floats or integer - they are given in degrees."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1687
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1688
     | lineWidthObj lineStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1689
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1690
     lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1691
     lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1692
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1693
    int __x, __y, w, h;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1694
    float angle1, angle2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1695
    double f;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1696
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1697
    if (__isSmallInteger(startAngle))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1698
	angle1 = (float)(__intVal(startAngle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1699
    else if (__isFloat(startAngle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1700
	angle1 = (float) __floatVal(startAngle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1701
    } else if (__isShortFloat(startAngle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1702
	angle1 = __shortFloatVal(startAngle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1703
    } else goto bad;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1704
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1705
    if (__isSmallInteger(angle))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1706
	angle2 = (float)(__intVal(angle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1707
    else if (__isFloat(angle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1708
	angle2 = (float) __floatVal(angle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1709
    } else if (__isShortFloat(angle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1710
	angle2 = __shortFloatVal(angle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1711
    } else goto bad;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1712
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1713
    if (angle2 <= 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1714
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1715
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1716
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1717
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1718
     && __bothSmallInteger(x, y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1719
     && __bothSmallInteger(width, height))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1720
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1721
	POINT p;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1722
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1723
	DWORD clr = 0 /* 0xFFFFFFFF */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1724
	HANDLE prevPen, hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1725
	double xB, yB, xE, yE, xR, yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1726
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1727
	OBJ lStyleSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1728
	int lStyleInt;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1729
	int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1730
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1731
	lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1732
	lStyleSymbol= lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1733
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1734
	/*  PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1735
	    only works with lineWidth = 1  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1736
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1737
	if (lStyleSymbol == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1738
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1739
	} else if (lStyleSymbol == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1740
	    lStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1741
	} else if (lStyleSymbol == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1742
	    lStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1743
	} else if (lStyleSymbol == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1744
	    lStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1745
	} else if (lStyleSymbol == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1746
	    lStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1747
	} else if (lStyleSymbol == @symbol(insideFrame)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1748
	    lStyleInt= PS_INSIDEFRAME;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1749
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1750
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1751
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1752
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1753
	hPen = CreatePen(lStyleInt, lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1754
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1755
	w = __intVal(width);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1756
	h = __intVal(height);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1757
	__x = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1758
	__y = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1759
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1760
	    xR = w / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1761
	    yR = h / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1762
	    if (angle2 - angle1 >= 360) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1763
		xB = xE = __x + xR + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1764
		yB = yE = __y /*+ yR + 0.5*/;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1765
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1766
		double sin(), cos();
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1767
		float rad1, rad2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1768
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1769
		if (angle1 <= 180)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1770
		  angle1 = 180 - angle1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1771
		else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1772
		  angle1 = 360 + 180 - angle1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1773
		angle2 = angle1 - angle2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1774
		/* sigh - compute the intersections ... */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1775
		rad1 = (angle1 * 3.14159265359) / 180.0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1776
		rad2 = (angle2 * 3.14159265359) / 180.0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1777
		xB = cos(rad1) * xR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1778
		yB = sin(rad1) * yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1779
		xE = cos(rad2) * xR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1780
		yE = sin(rad2) * yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1781
		xB = __x + xR - xB + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1782
		yB = __y + yR - yB + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1783
		xE = __x + xR - xE + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1784
		yE = __y + yR - yE + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1785
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1786
	    prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1787
	    DPRINTF(("Arc x=%d y=%d w=%d h=%d xB=%d xE=%d yB=%d yE=%d a1=%f a2=%f\n",__x,__y,w,h,(int)xB,(int)xE,(int)yB,(int)yE,angle1,angle2));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1788
	    Arc(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1789
		__x, __y,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1790
		__x + w, __y + h,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1791
		(int)xB, (int)yB,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1792
		(int)xE, (int)yE);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1793
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1794
	    SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1795
	    DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1796
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1797
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1798
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1799
    bad: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1800
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1801
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1802
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1803
    "Created: / 07-08-2006 / 10:40:27 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1804
    "Modified: / 07-08-2006 / 14:44:21 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1805
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1806
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1807
displayLineFromX:x0 y:y0 toX:x1 y:y1 in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1808
    "draw a line. If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1809
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1810
     | lineWidthObj lineStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1811
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1812
     lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1813
     lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1814
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1815
%{ 
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1816
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1817
     && __bothSmallInteger(x0, y0)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1818
     && __bothSmallInteger(x1, y1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1819
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1820
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1821
	HANDLE prevPen, hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1822
	int __x1 = __intVal(x1), __y1 = __intVal(y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1823
	OBJ lStyleSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1824
	int lStyleInt;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1825
	int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1826
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1827
/*      DPRINTF(("displayLine: %d/%d -> %d/%d\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1828
		    __intVal(x0), __intVal(y0),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1829
		    __x1, __y1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1830
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1831
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1832
	lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1833
	lStyleSymbol= lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1834
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1835
	/*  PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1836
	    only works with lineWidth = 1  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1837
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1838
	if (lStyleSymbol == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1839
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1840
	} else if (lStyleSymbol == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1841
	    lStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1842
	} else if (lStyleSymbol == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1843
	    lStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1844
	} else if (lStyleSymbol == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1845
	    lStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1846
	} else if (lStyleSymbol == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1847
	    lStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1848
	} else if (lStyleSymbol == @symbol(insideFrame)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1849
	    lStyleInt= PS_INSIDEFRAME;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1850
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1851
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1852
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1853
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1854
	hPen = CreatePen(lStyleInt, lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1855
	prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1856
	MoveToEx(hDC, __intVal(x0), __intVal(y0), NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1857
	LineTo(hDC, __x1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1858
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1859
	 * end-point ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1860
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1861
	// LineTo(hDC, __x1+1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1862
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1863
	SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1864
	DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1865
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1866
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1867
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1868
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1869
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1870
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1871
displayPointX:px y:py in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1872
    "draw a point. If x/y are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1873
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1874
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1875
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1876
     && __bothSmallInteger(px, py)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1877
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1878
	POINT p;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1879
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1880
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1881
	int __x = __intVal(px), __y = __intVal(py);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1882
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1883
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1884
	SetPixelV(hDC, __x, __y, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1885
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1886
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1887
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1888
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1889
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1890
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1891
displayPolygon:aPolygon in:aDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1892
    "draw a polygon, the argument aPolygon is a Collection of individual points,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1893
     which define the polygon.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1894
     If any coordinate is not integer, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1895
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1896
    | numberOfPoints lineWidthObj lineStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1897
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1898
     lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1899
     lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1900
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1901
    numberOfPoints := aPolygon size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1902
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1903
    OBJ point, px, py;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1904
    int i, num;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1905
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1906
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1907
     /* && __isExternalAddress(aDrawableId) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1908
     && __isSmallInteger(numberOfPoints)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1909
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1910
	POINT p;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1911
	DWORD clr = 0 /* 0xFFFFFFFF */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1912
	HANDLE prevPen, hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1913
	int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1914
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1915
	OBJ lStyleSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1916
	int lStyleInt;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1917
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1918
	lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1919
	lStyleSymbol= lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1920
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1921
	/*  PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1922
	    only works with lineWidth = 1  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1923
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1924
	if (lStyleSymbol == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1925
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1926
	} else if (lStyleSymbol == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1927
	    lStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1928
	} else if (lStyleSymbol == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1929
	    lStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1930
	} else if (lStyleSymbol == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1931
	    lStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1932
	} else if (lStyleSymbol == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1933
	    lStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1934
	} else if (lStyleSymbol == @symbol(insideFrame)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1935
	    lStyleInt= PS_INSIDEFRAME;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1936
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1937
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1938
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1939
	num = __intVal(numberOfPoints);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1940
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1941
	for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1942
	    point = __AT_(aPolygon, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1943
	    if (! __isPoint(point)) goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1944
	    px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1945
	    py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1946
	    if (! __bothSmallInteger(px, py)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1947
		goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1948
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1949
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1950
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1951
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1952
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1953
	hPen = CreatePen(lStyleInt, lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1954
	prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1955
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1956
	for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1957
	    point = __AT_(aPolygon, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1958
	    px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1959
	    py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1960
	    p.x = __intVal(px);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1961
	    p.y = __intVal(py);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1962
	    if (i == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1963
		MoveToEx(hDC, p.x, p.y, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1964
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1965
		if (i == (num-1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1966
		    PolylineTo(hDC, &p, 1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1967
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1968
		    LineTo(hDC, p.x, p.y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1969
#ifdef PRE_04_JUN_04
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1970
		    /*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1971
		     * end-point ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1972
		     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1973
		    LineTo(hDC, p.x+1, p.y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1974
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1975
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1976
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1977
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1978
	SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1979
	DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1980
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1981
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1982
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1983
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1984
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1985
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1986
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1987
    "Created: / 07-08-2006 / 14:46:55 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1988
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1989
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1990
displayPolylines:arrayOfPoints
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1991
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1992
    self device displayPolylines:arrayOfPoints in:nil with:self gcId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1993
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1994
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1995
displayPolylines:aPolyline in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1996
    "draw a polyline, the argument aPolyline is a collection of individual points,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1997
     which define the lines (p1/p2 pairs); must be even in size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1998
     If any coordinate is not integer, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1999
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2000
    |numberOfPoints lineWidthObj lineStyleObj capStyleObj joinStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2001
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2002
    numberOfPoints := aPolyline size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2003
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2004
 	lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2005
	lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2006
	
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2007
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2008
    OBJ point, px, py;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2009
    int i, num;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2010
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2011
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2012
     && __isSmallInteger(numberOfPoints)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2013
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2014
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2015
	POINT p;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2016
	HANDLE prevPen, hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2017
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2018
	int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2019
	OBJ lStyleSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2020
	int lStyleInt;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2021
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2022
	lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2023
	lStyleSymbol= lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2024
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2025
	/*  PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2026
	    only works with lineWidth = 1  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2027
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2028
	if (lStyleSymbol == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2029
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2030
	} else if (lStyleSymbol == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2031
	    lStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2032
	} else if (lStyleSymbol == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2033
	    lStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2034
	} else if (lStyleSymbol == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2035
	    lStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2036
	} else if (lStyleSymbol == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2037
	    lStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2038
	} else if (lStyleSymbol == @symbol(insideFrame)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2039
	    lStyleInt= PS_INSIDEFRAME;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2040
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2041
	    lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2042
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2043
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2044
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2045
	num = __intVal(numberOfPoints);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2046
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2047
	for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2048
	    point = __AT_(aPolyline, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2049
	    if (! __isPoint(point)) goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2050
	    px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2051
	    py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2052
	    if (! __bothSmallInteger(px, py)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2053
		goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2054
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2055
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2056
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2057
	hPen = CreatePen(lStyleInt, lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2058
	prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2059
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2060
	for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2061
	    point = __AT_(aPolyline, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2062
	    px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2063
	    py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2064
	    p.x = __intVal(px);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2065
	    p.y = __intVal(py);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2066
	    DPRINTF(("printing point"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2067
	    DPRINTF(("displayPolygon: no pen\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2068
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2069
	    if ((i & 1) == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2070
		MoveToEx(hDC, p.x, p.y, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2071
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2072
		LineTo(hDC, p.x, p.y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2073
		/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2074
		 * end-point ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2075
		 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2076
		LineTo(hDC, p.x+1, p.y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2077
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2078
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2079
	SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2080
	DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2081
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2082
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2083
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2084
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2085
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2086
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2087
displayRectangleX:x y:y width:width height:height in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2088
    "draw a rectangle. If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2089
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2090
    | lineWidthObj lineStyleObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2091
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2092
    lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2093
	lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2094
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2095
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2096
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2097
    int w, h;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2098
    int xL, yT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2099
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2100
     && __bothSmallInteger(x, y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2101
     && __bothSmallInteger(width, height)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2102
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2103
	xL = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2104
	yT = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2105
	w = __intVal(width);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2106
	h = __intVal(height);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2107
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2108
	DPRINTF(("displayRectangle: %d/%d -> %d/%d\n", xL, yT, w, h));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2109
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2110
	if ((w >= 0) && (h >= 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2111
	    HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2112
	    COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2113
	    HANDLE prevPen, hPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2114
	    OBJ lStyleSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2115
	    int lStyleInt;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2116
	    int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2117
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2118
	    lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2119
	    lStyleSymbol= lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2120
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2121
	    /*  PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2122
		only works with lineWidth = 1  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2123
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2124
	    if (lStyleSymbol == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2125
		lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2126
	    } else if (lStyleSymbol == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2127
		lStyleInt= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2128
	    } else if (lStyleSymbol == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2129
		lStyleInt= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2130
	    } else if (lStyleSymbol == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2131
		lStyleInt= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2132
	    } else if (lStyleSymbol == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2133
		lStyleInt= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2134
	    } else if (lStyleSymbol == @symbol(insideFrame)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2135
		lStyleInt= PS_INSIDEFRAME;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2136
	    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2137
		lStyleInt= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2138
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2139
	    fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2140
	    hPen = CreatePen(lStyleInt, lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2141
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2142
	    prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2143
	    MoveToEx(hDC, xL, yT, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2144
	    LineTo(hDC, xL+w, yT);       // to top-right
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2145
	    LineTo(hDC, xL+w, yT+h);     // to bot-right
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2146
	    MoveToEx(hDC, xL, yT, NULL); // back to top-left
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2147
	    LineTo(hDC, xL, yT+h);       // to bot-left
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2148
	    // LineTo(hDC, xL+w+1, yT+h);   // move pen one pixel more
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2149
	    LineTo(hDC, xL+w,   yT+h);   // move pen one pixel more
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2150
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2151
	    SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2152
	    DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2153
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2154
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2155
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2156
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2157
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2158
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2159
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2160
    "Created: / 28-07-2006 / 20:18:25 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2161
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2162
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2163
displayRoundRectangleX:left y:top width:width height:height wCorner:wCorn hCorner:hCorn
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2164
    |right bottom wC hC wHalf hHalf|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2165
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2166
    right := left + width-1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2167
    bottom := top + height-1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2168
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2169
    wC := wCorn.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2170
    hC := hCorn.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2171
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2172
    self scale = 1 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2173
	wHalf := wC // 2.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2174
	hHalf := hC // 2.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2175
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2176
	wHalf := wC / 2.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2177
	hHalf := hC / 2.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2178
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2179
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2180
    "top left arc"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2181
    self displayArcX:left y:top width:wC height:hC from:90 angle:90.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2182
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2183
    "top right arc"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2184
    self displayArcX:(right - wC) y:top width:wC height:hC from:0 angle:90.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2185
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2186
    "bottom right arc"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2187
    self displayArcX:(right - wC) y:(bottom - hC) width:wC height:hC from:270 angle:90.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2188
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2189
    "bottom left arc"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2190
    self displayArcX:left y:(bottom - hC) width:wC height:hC from:180 angle:90.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2191
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2192
    "top line"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2193
    self displayLineFromX:(left + wHalf) y:top toX:(right - wHalf+1) y:top.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2194
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2195
    "left line"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2196
    self displayLineFromX:left y:(top + hHalf - 1) toX:left y:(bottom - hHalf).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2197
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2198
    "bottom line"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2199
    self displayLineFromX:(left + wHalf-1) y:bottom
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2200
		      toX:(right - wHalf ) y:bottom.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2201
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2202
    "right line"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2203
    self displayLineFromX:right y:(top + hHalf) toX:right y:(bottom - hHalf).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2204
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2205
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2206
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2207
     |v|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2208
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2209
     (v := View new) extent:200@200; openAndWait.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2210
     v displayRoundRectangleX:10 y:10 width:100 height:100 wCorner:20 hCorner:20
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2211
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2212
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2213
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2214
displayString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2215
    "draw a sub-string - draw foreground only.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2216
     If the coordinates are not integers, retry with rounded."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2217
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2218
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2219
	displayString:aString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2220
	from:index1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2221
	to:index2
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2222
	x:x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2223
	y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2224
	in:aDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2225
	with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2226
	opaque:false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2227
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2228
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2229
displayString:aString from:index1 to:index2 x:x y:y in:ignoredDrawableId with:aDC opaque:opaque
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2230
    "draw a sub-string - if opaque is false, draw foreground only; otherwise, draw both
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2231
     foreground and background characters.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2232
     If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2233
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2234
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2235
    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2236
    OBJ cls;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2237
    int  i1, i2, l, n;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2238
    int nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2239
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2240
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2241
     && __isNonNilObject(aString)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2242
     && __bothSmallInteger(index1, index2)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2243
     && __bothSmallInteger(x, y))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2244
    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2245
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2246
	int pX, pY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2247
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2248
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2249
	pX = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2250
	pY = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2251
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2252
	if (opaque == true) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2253
	    SetBkMode(hDC, OPAQUE);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2254
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2255
	    SetBkMode(hDC, TRANSPARENT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2256
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2257
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2258
	SetTextColor(hDC, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2259
	SetBkColor(hDC, 0xFFFFFFFF);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2260
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2261
	cls = __qClass(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2262
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2263
	i1 = __intVal(index1) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2264
	if (i1 >= 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2265
	    i2 = __intVal(index2) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2266
	    if (i2 < i1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2267
		goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2268
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2269
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2270
	    cp = _stringVal(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2271
	    l = i2 - i1 + 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2272
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2273
	    if ((cls == @global(String)) || (cls == @global(Symbol))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2274
		n = _stringSize(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2275
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2276
		    cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2277
		    DPRINTF(("string1: %s pos=%d/%d l=%d hDC=%x\n", cp, pX, pY,l,hDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2278
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2279
		    if (l > 32767) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2280
			l = 32767;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2281
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2282
		    if (! TextOut(hDC, pX, pY, (char *)cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2283
			DFPRINTF((stderr, "WinPrinter [warning]: Textout failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2284
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2285
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2286
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2287
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2288
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2289
	    nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2290
	    cp += nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2291
	    n = __byteArraySize(aString) - nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2292
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2293
	    if (__isBytes(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2294
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2295
		    cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2296
		    DPRINTF(("string: %s pos=%d/%d\n", cp, pX, pY));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2297
		    if (l > 32767) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2298
			l = 32767;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2299
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2300
		    if (! TextOut(hDC, pX, pY, (char *)cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2301
			DFPRINTF((stderr, "WinPrinter [warning]: Textout failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2302
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2303
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2304
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2305
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2306
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2307
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2308
	    if (__isWords(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2309
		n = n / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2310
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2311
		    WIDECHAR *w_cp = (WIDECHAR *)cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2312
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2313
		    w_cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2314
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2315
		    if (! TextOutW(hDC, pX, pY, w_cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2316
			DFPRINTF((stderr, "WinPrinter [warning]: TextoutW failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2317
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2318
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2319
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2320
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2321
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2322
ret:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2323
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2324
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2325
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2326
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2327
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2328
    "Created: / 28-07-2006 / 20:35:19 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2329
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2330
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2331
displayString:aString from:index1 to:index2 x:x y:y in:ignoredDrawableId with:aDC opaque:opaque fontAscent:fontAscent
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2332
    "draw a sub-string - if opaque is false, draw foreground only; otherwise, draw both
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2333
     foreground and background characters.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2334
     If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2335
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2336
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2337
    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2338
    OBJ cls;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2339
    int  i1, i2, l, n;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2340
    int nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2341
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2342
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2343
     && __isNonNilObject(aString)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2344
     && __bothSmallInteger(index1, index2)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2345
     && __bothSmallInteger(x, y))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2346
    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2347
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2348
	int pX, pY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2349
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2350
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2351
	pX = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2352
	pY = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2353
	pY -= __intVal(fontAscent);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2354
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2355
	if (opaque == true) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2356
	    SetBkMode(hDC, OPAQUE);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2357
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2358
	    SetBkMode(hDC, TRANSPARENT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2359
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2360
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2361
	SetTextColor(hDC, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2362
	SetBkColor(hDC, 0xFFFFFFFF);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2363
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2364
	cls = __qClass(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2365
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2366
	i1 = __intVal(index1) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2367
	if (i1 >= 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2368
	    i2 = __intVal(index2) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2369
	    if (i2 < i1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2370
		goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2371
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2372
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2373
	    cp = _stringVal(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2374
	    l = i2 - i1 + 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2375
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2376
	    if ((cls == @global(String)) || (cls == @global(Symbol))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2377
		n = _stringSize(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2378
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2379
		    cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2380
		    DPRINTF(("string1: %s pos=%d/%d l=%d hDC=%x\n", cp, pX, pY,l,hDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2381
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2382
		    if (l > 32767) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2383
			l = 32767;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2384
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2385
		    if (! TextOut(hDC, pX, pY, (char *)cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2386
			DFPRINTF((stderr, "WinPrinter [warning]: Textout failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2387
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2388
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2389
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2390
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2391
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2392
	    nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2393
	    cp += nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2394
	    n = __byteArraySize(aString) - nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2395
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2396
	    if (__isBytes(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2397
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2398
		    cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2399
		    DPRINTF(("string: %s pos=%d/%d\n", cp, pX, pY));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2400
		    if (l > 32767) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2401
			l = 32767;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2402
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2403
		    if (! TextOut(hDC, pX, pY, (char *)cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2404
			DFPRINTF((stderr, "WinPrinter [warning]: Textout failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2405
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2406
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2407
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2408
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2409
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2410
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2411
	    if (__isWords(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2412
		n = n / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2413
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2414
		    WIDECHAR *w_cp = (WIDECHAR *)cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2415
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2416
		    w_cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2417
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2418
		    if (! TextOutW(hDC, pX, pY, w_cp, l)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2419
			DFPRINTF((stderr, "WinPrinter [warning]: TextoutW failed. %d\n", GetLastError()));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2420
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2421
		    goto ret;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2422
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2423
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2424
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2425
ret:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2426
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2427
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2428
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2429
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2430
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2431
    "Created: / 28-07-2006 / 20:35:19 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2432
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2433
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2434
displayString:aString x:x y:y in:aDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2435
    "draw a string - draw foreground only.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2436
     If the coordinates are not integers, retry with rounded."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2437
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2438
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2439
	displayString:aString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2440
	x:x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2441
	y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2442
	in:aDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2443
	with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2444
	opaque:false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2445
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2446
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2447
displayString:aString x:x y:y in:aDrawableId with:aDC opaque:opaque
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2448
    "draw a string"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2449
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2450
    self displayString:aString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2451
		  from:1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2452
		    to:aString size
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2453
		     x:x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2454
		     y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2455
		     in:aDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2456
		     with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2457
		     opaque:opaque
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2458
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2459
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2460
fillArcX:x y:y width:width height:height from:startAngle angle:angle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2461
	       in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2462
    "fill an arc. If any coordinate is not integer, an error is triggered.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2463
     The angles may be floats or integer - they are given in degrees."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2464
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2465
    | hatchSymbol |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2466
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2467
    hatchSymbol := self hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2468
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2469
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2470
    int __x, __y, w, h;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2471
    float angle1, angle2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2472
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2473
    if (__isSmallInteger(startAngle))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2474
	angle1 = (float)(__intVal(startAngle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2475
    else if (__isFloat(startAngle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2476
	angle1 = __floatVal(startAngle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2477
    } else if (__isShortFloat(startAngle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2478
	angle1 = __shortFloatVal(startAngle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2479
    } else goto bad;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2480
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2481
    if (__isSmallInteger(angle))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2482
	angle2 = (float)(__intVal(angle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2483
    else if (__isFloat(angle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2484
	angle2 = __floatVal(angle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2485
    } else if (__isShortFloat(angle)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2486
	angle2 = __shortFloatVal(angle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2487
    } else goto bad;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2488
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2489
    if (angle2 <= 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2490
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2491
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2492
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2493
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2494
     && __bothSmallInteger(x, y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2495
     && __bothSmallInteger(width, height))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2496
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2497
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2498
	HBRUSH hBrush, prevBrush;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2499
	HPEN prevPen = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2500
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2501
	int hatch, hasHatch;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2502
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2503
	w = __intVal(width);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2504
	h = __intVal(height);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2505
	__x = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2506
	__y = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2507
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2508
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2509
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2510
	hasHatch= 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2511
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2512
	if (hatchSymbol == @symbol(none)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2513
	    hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2514
	} else if (hatchSymbol == @symbol(horizontal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2515
	    hatch= HS_HORIZONTAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2516
	} else if (hatchSymbol == @symbol(vertical)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2517
	    hatch= HS_VERTICAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2518
	} else if (hatchSymbol == @symbol(cross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2519
	    hatch= HS_CROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2520
	} else if (hatchSymbol == @symbol(bDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2521
	    hatch= HS_BDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2522
	} else if (hatchSymbol == @symbol(fDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2523
	    hatch= HS_FDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2524
	} else if (hatchSymbol == @symbol(diagonalCross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2525
	    hatch= HS_DIAGCROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2526
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2527
	    hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2528
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2529
	if (hasHatch) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2530
	    hBrush = CreateHatchBrush(hatch, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2531
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2532
	    hBrush = CreateSolidBrush(fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2533
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2534
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2535
	prevBrush = SelectObject(hDC, hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2536
	if (hBrush == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2537
	    DPRINTF(("fillArc: no brush\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2538
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2539
	    HPEN hPen = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2540
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2541
	    if (0 /* __isWinNT */) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2542
		fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2543
		hPen = CreatePen(PS_SOLID, 1, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2544
		prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2545
		if (hPen == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2546
		    DPRINTF(("fillArc: no pen\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2547
		    goto failpen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2548
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2549
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2550
		prevPen = SelectObject(hDC, GetStockObject(NULL_PEN));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2551
		w++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2552
		h++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2553
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2554
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2555
	    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2556
		double xB, yB, xE, yE, xR, yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2557
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2558
		xR = w / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2559
		yR = h / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2560
		if (angle2 - angle1 >= 360) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2561
		    xB = xE = __x + xR + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2562
		    yB = yE = __y /*+ yR + 0.5*/;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2563
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2564
		    double sin(), cos();
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2565
		    float rad1, rad2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2566
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2567
		    if (angle1 <= 180)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2568
			angle1 = 180 - angle1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2569
		    else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2570
			angle1 = 360 + 180 - angle1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2571
		    angle2 = angle1 - angle2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2572
		    /* sigh - compute the intersections ... */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2573
		    rad1 = (angle1 * 3.14159265359) / 180.0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2574
		    rad2 = (angle2 * 3.14159265359) / 180.0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2575
		    xB = cos(rad1) * xR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2576
		    yB = sin(rad1) * yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2577
		    xE = cos(rad2) * xR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2578
		    yE = sin(rad2) * yR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2579
		    xB = __x + xR - xB + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2580
		    yB = __y + yR - yB + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2581
		    xE = __x + xR - xE + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2582
		    yE = __y + yR - yE + 0.5;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2583
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2584
		DPRINTF(("fillArc x=%d y=%d w=%d h=%d xB=%d xE=%d yB=%d yE=%d a1=%f a2=%f\n",__x,__y,w,h,(int)xB,(int)xE,(int)yB,(int)yE,angle1,angle2));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2585
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2586
		Pie(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2587
		    __x, __y,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2588
		    __x + w + 1, __y + h + 1,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2589
		    (int)xB, (int)yB,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2590
		    (int)xE, (int)yE);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2591
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2592
		if (hPen) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2593
		    DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2594
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2595
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2596
failpen:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2597
	    if (prevPen) SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2598
	    DeleteObject(hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2599
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2600
	    SelectObject(hDC, prevBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2601
	    DeleteObject(hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2602
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2603
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2604
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2605
    bad: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2606
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2607
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2608
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2609
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2610
fillPolygon:aPolygon in:ignoredDrawableId with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2611
    "fill a polygon given by its points.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2612
     If any coordinate is not integer, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2613
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2614
    |numberOfPoints|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2615
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2616
    numberOfPoints := aPolygon size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2617
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2618
	primFillPolygon:aPolygon n:numberOfPoints
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2619
	in:ignoredDrawableId with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2620
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2621
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2622
fillRectangleX:x y:y width:width height:height in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2623
    "fill a rectangle. If any coordinate is not integer, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2624
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2625
    |hatchSymbol|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2626
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2627
    hatchSymbol := self hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2628
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2629
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2630
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2631
    int w, h;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2632
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2633
     && __bothSmallInteger(x, y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2634
     && __bothSmallInteger(width, height)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2635
	w = __intVal(width);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2636
	h = __intVal(height);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2637
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2638
	if ((w >= 0) && (h >= 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2639
	    HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2640
	    HBRUSH hBrush, prevBrush;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2641
	    RECT rct;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2642
	    COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2643
	    int hatch, hasHatch;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2644
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2645
	    fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2646
	    hasHatch= 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2647
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2648
	    if (hatchSymbol == @symbol(none)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2649
		hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2650
	    } else if (hatchSymbol == @symbol(horizontal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2651
		hatch= HS_HORIZONTAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2652
	    } else if (hatchSymbol == @symbol(vertical)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2653
		hatch= HS_VERTICAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2654
	    } else if (hatchSymbol == @symbol(cross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2655
		hatch= HS_CROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2656
	    } else if (hatchSymbol == @symbol(bDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2657
		hatch= HS_BDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2658
	    } else if (hatchSymbol == @symbol(fDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2659
		hatch= HS_FDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2660
	    } else if (hatchSymbol == @symbol(diagonalCross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2661
		hatch= HS_DIAGCROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2662
	    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2663
		hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2664
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2665
	    if (hasHatch) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2666
		hBrush = CreateHatchBrush(hatch, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2667
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2668
		hBrush = CreateSolidBrush(fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2669
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2670
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2671
	    rct.left = __intVal(x);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2672
	    rct.top  = __intVal(y);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2673
	    rct.right  = rct.left + w; // + 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2674
	    rct.bottom = rct.top  + h; // + 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2675
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2676
	   prevBrush = SelectObject(hDC, hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2677
	   FillRect(hDC, &rct, hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2678
	   SelectObject(hDC, prevBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2679
	   DeleteObject(hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2680
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2681
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2682
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2683
    RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2684
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2685
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2686
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2687
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2688
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2689
primFillPolygon:aPolygon n:numberOfPoints in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2690
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2691
    |hatchSymbol|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2692
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2693
    hatchSymbol := self hatch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2694
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2695
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2696
    OBJ point, px, py;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2697
    int i, num;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2698
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2699
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2700
     && __isSmallInteger(numberOfPoints)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2701
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2702
	POINT p;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2703
	HBRUSH hBrush, prevBrush;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2704
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2705
	int hatch, hasHatch;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2706
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2707
	num = __intVal(numberOfPoints);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2708
	if (num < 3) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2709
	    RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2710
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2711
	for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2712
	    point = __AT_(aPolygon, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2713
	    if (! __isPoint(point)) goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2714
	    px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2715
	    py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2716
	    if (! __bothSmallInteger(px, py))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2717
		goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2718
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2719
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2720
	fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2721
	hasHatch= 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2722
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2723
	if (hatchSymbol == @symbol(none)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2724
	    hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2725
	} else if (hatchSymbol == @symbol(horizontal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2726
	    hatch= HS_HORIZONTAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2727
	} else if (hatchSymbol == @symbol(vertical)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2728
	    hatch= HS_VERTICAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2729
	} else if (hatchSymbol == @symbol(cross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2730
	    hatch= HS_CROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2731
	} else if (hatchSymbol == @symbol(bDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2732
	    hatch= HS_BDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2733
	} else if (hatchSymbol == @symbol(fDiagonal)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2734
	    hatch= HS_FDIAGONAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2735
	} else if (hatchSymbol == @symbol(diagonalCross)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2736
	    hatch= HS_DIAGCROSS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2737
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2738
	    hasHatch= 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2739
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2740
	if (hasHatch) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2741
	    hBrush = CreateHatchBrush(hatch, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2742
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2743
	    hBrush = CreateSolidBrush(fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2744
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2745
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2746
	if (hBrush == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2747
	    DPRINTF(("fillPolygon: no brush\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2748
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2749
	    HPEN prevPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2750
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2751
	    prevBrush = SelectObject(hDC, hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2752
	    prevPen = SelectObject(hDC, GetStockObject(NULL_PEN));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2753
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2754
	    BeginPath(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2755
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2756
	    for (i=0; i<num; i++) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2757
		point = __AT_(aPolygon, __MKSMALLINT(i+1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2758
		px = _point_X(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2759
		py = _point_Y(point);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2760
		if (i == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2761
		    MoveToEx(hDC, __intVal(px), __intVal(py), NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2762
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2763
		    if (i == (num-1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2764
			p.x = __intVal(px);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2765
			p.y = __intVal(py);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2766
			PolylineTo(hDC, &p, 1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2767
		    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2768
			LineTo(hDC, __intVal(px), __intVal(py));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2769
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2770
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2771
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2772
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2773
	    EndPath(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2774
	    FillPath(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2775
	    SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2776
	    SelectObject(hDC, prevBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2777
	    DeleteObject(hBrush);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2778
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2779
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2780
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2781
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2782
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2783
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2784
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2785
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2786
scaleTest_displayString:aString x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2787
    "draw a string at the coordinate x/y -
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2788
     draw foreground-pixels only (in current paint-color),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2789
     leaving background as-is. If the transformation involves scaling,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2790
     the fonts point-size is scaled as appropriate."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2791
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2792
    |id pX pY fontUsed sz s fontsEncoding|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2793
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2794
    "hook for non-strings (i.e. attributed text)"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2795
    (aString isString not
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2796
    or:[aString isText]) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2797
	^ aString displayOn:self x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2798
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2799
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2800
    self gcId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2801
	self initGC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2802
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2803
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2804
    fontUsed := self font.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2805
    self transformation notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2806
	pX := self transformation applyToX:x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2807
	pY := self transformation applyToY:y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2808
	self transformation noScale ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2809
	    sz := self font size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2810
	    sz isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2811
		"/ oops - not a real font; use original font
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2812
		fontUsed := self font.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2813
	    ] ifFalse:[ |yS|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2814
		yS := self pixelsPerInchOfScreenHeight / Screen current verticalPixelPerInch.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2815
		yS := self scale y / yS.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2816
		fontUsed := self font size:(sz * yS) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2817
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2818
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2819
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2820
	pX := x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2821
	pY := y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2822
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2823
    pX := pX rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2824
    pY := pY rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2825
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2826
    s := aString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2827
    fontUsed := fontUsed onDevice:self device.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2828
    fontsEncoding := fontUsed encoding.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2829
    (self characterEncoding ~~ fontsEncoding) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2830
	[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2831
	    s := CharacterEncoder encodeString:s from:self characterEncoding into:fontsEncoding.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2832
	] on:CharacterEncoderError do:[:ex|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2833
	    "substitute a default value for codes that cannot be represented
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2834
	     in the new character set"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2835
	    ex proceedWith:ex defaultValue.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2836
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2837
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2838
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2839
    id := fontUsed fontId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2840
    id isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2841
	"hook for alien fonts"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2842
	fontUsed displayString:s x:x y:y in:self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2843
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2844
	self deviceFont ~~ fontUsed ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2845
	    self device setFont:id in:self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2846
	    self deviceFont: fontUsed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2847
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2848
	self device displayString:s x:pX y:pY in:self drawableId with:self gcId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2849
    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2850
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2851
    "Modified: 1.7.1997 / 17:08:35 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2852
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2853
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2854
!WinPrinterContext methodsFor:'drawing bitmaps'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2855
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2856
bitsBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2857
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2858
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2859
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2860
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2861
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2862
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2863
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2864
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2865
     ^Display bitsBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2866
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2867
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2868
bitsGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2869
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2870
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2871
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2872
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2873
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2874
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2875
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2876
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2877
     ^Display bitsGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2878
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2879
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2880
bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2881
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2882
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2883
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2884
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2885
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2886
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2887
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2888
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2889
     ^Display bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2890
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2891
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2892
compressColorMapImage: image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2893
    "calculates a new color map for the image, using only used colors"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2894
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2895
    |depth newColorMap newImage oldImage usedColors oldToNew oldBits newBits tmpBits|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2896
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2897
    oldImage := image.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2898
    depth := oldImage depth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2899
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2900
    oldImage photometric ~~ #palette ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2901
	Transcript showCR:'Compress colorMap: Only palette images have colormaps.'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2902
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2903
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2904
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2905
    usedColors := oldImage realUsedColors.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2906
    usedColors size == (1 bitShift:depth) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2907
	Transcript showCR:'Compress colorMap: All colors are used - no compression.'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2908
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2909
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2910
    usedColors size == oldImage colorMap size ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2911
	Transcript showCR:'Compress colorMap: Colormap already compressed - no compression.'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2912
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2913
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2914
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2915
	"/ translation table
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2916
	oldToNew := ByteArray new:(1 bitShift:depth).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2917
	newColorMap := usedColors asArray.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2918
	newColorMap sort:self sortBlockForColors.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2919
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2920
	oldImage colorMap asArray keysAndValuesDo:[:oldIdx :clr |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2921
	    |newPixel|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2922
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2923
	    (usedColors includes:clr) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2924
		newPixel := newColorMap indexOf:clr.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2925
		oldToNew at:oldIdx put:newPixel-1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2926
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2927
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2928
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2929
	oldBits := oldImage bits.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2930
	newBits := ByteArray new:(oldBits size).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2931
	depth ~~ 8 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2932
	    "/ expand/compress can only handle 8bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2933
	    tmpBits := ByteArray uninitializedNew:(oldImage width*oldImage height).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2934
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2935
		expandPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2936
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2937
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2938
		into:tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2939
		mapping:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2940
	    tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2941
		compressPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2942
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2943
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2944
		into:newBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2945
		mapping:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2946
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2947
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2948
		expandPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2949
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2950
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2951
		into:newBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2952
		mapping:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2953
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2954
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2955
	newImage := oldImage species new
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2956
			width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2957
			height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2958
			depth:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2959
			fromArray:newBits.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2960
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2961
	newImage colorMap:newColorMap.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2962
	newImage fileName:oldImage fileName.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2963
	newImage mask:(oldImage mask copy).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2964
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2965
	^ newImage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2966
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2967
    "Created: / 28.7.1998 / 20:03:11 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2968
    "Modified: / 15.9.1998 / 17:53:32 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2969
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2970
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2971
copyFromId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2972
		width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2973
    "do a bit-blt; copy bits from the rectangle defined by
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2974
     srcX/srcY and w/h from the sourceId drawable to the rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2975
     below dstX/dstY in the destId drawable. Trigger an error if any
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2976
     argument is not integer."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2977
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2978
     | function |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2979
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2980
     function := self function.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2981
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2982
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2983
    int     dstGcOwnerThreadID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2984
    HWND    dstGcHWIN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2985
    HBITMAP dstGcHBITMAP;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2986
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2987
    if (! __isExternalAddressLike(srcGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2988
     || ! __isExternalAddressLike(dstGCId)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2989
	goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2990
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2991
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2992
    if (__bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2993
     && __bothSmallInteger(srcX, srcY)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2994
     && __bothSmallInteger(dstX, dstY)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2995
	HANDLE srcDC = (HANDLE)(__externalAddressVal(srcGCId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2996
	HANDLE dstDC = (HANDLE)(__externalAddressVal(dstGCId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2997
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2998
	int fun;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2999
	OBJ aFunctionSymbol;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3000
	int src_fg, src_bg, dst_fg, dst_bg;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3001
	char buf[5];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3002
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3003
//          fun = dstGcData->bitbltrop2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3004
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3005
	aFunctionSymbol= function;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3006
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3007
	if (aFunctionSymbol == @symbol(copy)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3008
	    fun = SRCCOPY /* R2_COPYPEN */ ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3009
/*            bfun = BITBLT_COPY;                                          */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3010
	} else if (aFunctionSymbol == @symbol(copyInverted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3011
	    fun = NOTSRCCOPY /* R2_NOTCOPYPEN */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3012
/*            bfun = BITBLT_COPYINVERTED;                                  */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3013
	} else if (aFunctionSymbol == @symbol(xor)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3014
	    fun = SRCINVERT /* R2_XORPEN */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3015
/*            bfun = BITBLT_XOR;                                           */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3016
	} else if (aFunctionSymbol == @symbol(and)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3017
	    fun = SRCAND /* R2_MASKPEN */ ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3018
/*            bfun = BITBLT_AND;                                           */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3019
	} else if (aFunctionSymbol == @symbol(or)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3020
	    fun = MERGECOPY /* R2_MERGEPEN */ ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3021
/*            bfun = BITBLT_OR;                                            */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3022
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3023
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3024
    // convert 123 to string [buf]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3025
    // itoa(fun, buf, 10);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3026
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3027
    //        console_printf(" ", buf);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3028
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3029
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3030
#if 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3031
	switch (fun) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3032
	  case BITBLT_COPY:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3033
	    console_printf("BITBLT_COPY\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3034
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3035
	  case BITBLT_COPYINVERTED:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3036
	    console_printf("BITBLT_COPYINVERTED\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3037
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3038
	  case BITBLT_XOR:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3039
	    console_printf("BITBLT_XOR\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3040
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3041
	  case BITBLT_AND:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3042
	    console_printf("BITBLT_AND\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3043
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3044
	  case BITBLT_OR:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3045
	    console_printf("BITBLT_OR\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3046
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3047
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3048
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3049
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3050
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3051
//          fun = dstGcData->bitbltrop2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3052
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3053
	if (0 /* fun == BITBLT_COPY */) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3054
	    src_fg = dst_fg = 0xFFFFFF;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3055
	    src_bg = dst_bg = 0x000000;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3056
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3057
	    src_fg = GetTextColor(srcDC) /* srcGcData->fgColor */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3058
	    src_bg = GetBkColor(dstDC) /* srcGcData->bgColor */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3059
	    dst_fg = GetTextColor(srcDC) /* dstGcData->fgColor */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3060
	    dst_bg = GetBkColor(dstDC) /* dstGcData->bgColor */;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3061
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3062
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3063
	SetBkColor(dstDC, dst_fg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3064
	SetTextColor(dstDC, dst_bg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3065
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3066
	SetBkColor(srcDC, src_fg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3067
	SetTextColor(srcDC, src_bg);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3068
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3069
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3070
	CPRINTF(("bitblt src f:%x b:%x",GetTextColor(srcDC),GetBkColor(srcDC)));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3071
	CPRINTF(("dst f:%x b:%x\n",GetTextColor(dstDC),GetBkColor(dstDC)));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3072
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3073
	if (BitBlt(dstDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3074
	     __intVal(dstX), __intVal(dstY),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3075
	     __intVal(w), __intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3076
	     srcDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3077
	     __intVal(srcX), __intVal(srcY),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3078
	     fun)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3079
	   == 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3080
	  ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3081
	    console_fprintf(stderr, "WinWorkstation [info]: ERROR in BitBlt\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3082
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3083
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3084
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3085
	if (dstGcData != srcGcData) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3086
	    SetBkColor(dstDC, dstGcData->bgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3087
	    SetTextColor(dstDC, dstGcData->fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3088
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3089
	SetBkColor(srcDC, srcGcData->bgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3090
	SetTextColor(srcDC, srcGcData->fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3091
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3092
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3093
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3094
	if (srcGcData != dstGcData) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3095
	    _releaseDC(srcGcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3096
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3097
	_releaseDC(dstGcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3098
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3099
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3100
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3101
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3102
 fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3103
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3104
    self primitiveFailed.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3105
    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3106
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3107
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3108
copyFromPixmapId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3109
    "do a bit-blt from a pix- or bitmap.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3110
     Here, fall back into copyFromId:, which should also work.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3111
     Subclasses may redefine this for more performance or if required"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3112
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3113
    ^ self copyFromId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3114
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3115
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3116
copyPlaneFromId:sourceId x:srcX y:srcY gc:srcDCId to:destId x:dstX y:dstY gc:dstDCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3117
		width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3118
    "do a bit-blt, but only copy the low-bit plane;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3119
     copy bits from the rectangle defined by
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3120
     srcX/srcY and w/h from the sourceId drawable to the rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3121
     below dstX/dstY in the destId drawable. Trigger an error if any
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3122
     argument is not integer."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3123
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3124
    ^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3125
	copyFromId:sourceId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3126
		 x:srcX y:srcY gc:srcDCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3127
		to:destId x:dstX y:dstY gc:dstDCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3128
	     width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3129
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3130
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3131
copyPlaneFromPixmapId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3132
    "do a bit-blt from a pix- or bitmap, using the low-bit plane of the source only.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3133
     Here, fall back into copyPlaneFromId:, which should also work.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3134
     Subclasses may redefine this for more performance or if required"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3135
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3136
    ^ self copyPlaneFromId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3137
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3138
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3139
createBitmapFromArray:anArray width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3140
    |bitmapId|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3141
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3142
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3143
    bitmapId := self primCreateBitmapFromArray:anArray width:w height:h.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3144
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3145
    bitmapId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3146
	'WINWORKSTATION: cannot create bitmap' errorPrintCR.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3147
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3148
    ^ bitmapId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3149
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3150
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3151
createPixmapWidth:w height:h depth:d
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3152
    "allocate a pixmap on the Xserver, the contents is undefined
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3153
     (i.e. random). Return a bitmap id or nil"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3154
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3155
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3156
    HANDLE newBitmapHandle;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3157
    HANDLE rootDC = CreateDC("DISPLAY", NULL, NULL, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3158
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3159
    /*console_printf("CreateBitmap Color\n");*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3160
    if (__bothSmallInteger(w, h) && __isSmallInteger(d) /*&& ISCONNECTED */) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3161
	if (__intVal(d) == 1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3162
	    newBitmapHandle = CreateBitmap(__intVal(w), __intVal(h) , 1, 1, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3163
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3164
#if 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3165
	    if (__intVal(d) != __depth) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3166
		console_printf("invalid depth\n");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3167
		RETURN (nil);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3168
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3169
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3170
	    newBitmapHandle = CreateCompatibleBitmap(rootDC, __intVal(w), __intVal(h) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3171
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3172
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3173
	if (newBitmapHandle) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3174
	    RETURN ( __MKEXTERNALADDRESS(newBitmapHandle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3175
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3176
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3177
	DPRINTF(("empty bitmap handle = %x\n", newBitmapHandle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3178
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3179
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3180
    RETURN (nil);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3181
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3182
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3183
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3184
destroyPixmap:aDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3185
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3186
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3187
    if (__isExternalAddress(aDrawableId) /* && ISCONNECTED */ ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3188
	HANDLE bitmapHandle = _HANDLEVal(aDrawableId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3189
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3190
	if (bitmapHandle) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3191
	    DeleteObject(bitmapHandle);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3192
	/*    _DeleteObject(bitmapHandle, __LINE__);    */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3193
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3194
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3195
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3196
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3197
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3198
displayDeviceForm:aForm x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3199
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3200
    |sortedImage formMask bitsWithTransparency redVector greenVector blueVector|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3201
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3202
    sortedImage := aForm.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3203
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3204
    "Image 16 bits"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3205
    aForm depth = 16 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3206
	bitsWithTransparency := aForm bits.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3207
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3208
    "Image 24 and 32 bits"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3209
    aForm depth >= 24 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3210
	|bestFormat|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3211
	bestFormat := aForm bestSupportedImageFormatFor: Display.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3212
	bitsWithTransparency := aForm rgbImageBitsOn: Display bestFormat: bestFormat.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3213
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3214
    "Image up to 8 bits"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3215
    aForm depth <= 8 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3216
	aForm depth < 8 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3217
	    sortedImage := aForm asImageWithDepth: 8.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3218
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3219
"/        sortedImage := self sortColorMapImage: aForm.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3220
	sortedImage := self compressColorMapImage: sortedImage.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3221
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3222
	formMask := sortedImage mask.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3223
	formMask isNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3224
	    ifTrue:[bitsWithTransparency := sortedImage bits ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3225
	    ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3226
		|bitsWithTransparencySize|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3227
		formMask := formMask asImageWithDepth: sortedImage depth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3228
		bitsWithTransparency := sortedImage bits copy.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3229
		bitsWithTransparencySize := bitsWithTransparency size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3230
		formMask bits doWithIndex:[:maskBit :index |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3231
		    bitsWithTransparencySize >= index ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3232
			maskBit == 0 ifTrue:[bitsWithTransparency at: index put: 255 "60" "bitClearAt: index"].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3233
"/                    maskBit == 1 ifTrue:[bitsWithTransparency at: index put: (bitsWithTransparency at: index)].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3234
		    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3235
		].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3236
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3237
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3238
	redVector := sortedImage colorMap redVector.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3239
	greenVector := sortedImage colorMap greenVector.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3240
	blueVector := sortedImage colorMap blueVector.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3241
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3242
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3243
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3244
	 drawBits: bitsWithTransparency
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3245
	redVector: redVector
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3246
      greenVector: greenVector
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3247
       blueVector: blueVector
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3248
     bitsPerPixel: sortedImage bitsPerPixel
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3249
	    depth: sortedImage depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3250
	    width: sortedImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3251
	   height: sortedImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3252
	     into: self id
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3253
		x: x
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3254
		y: y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3255
	    width: sortedImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3256
	   height: sortedImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3257
	     with: self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3258
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3259
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3260
drawBits:imageBits bitsPerPixel:bitsPerPixel depth:imageDepth padding:padd
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3261
			  width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3262
			      x:srcx y:srcy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3263
			   into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3264
			      x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3265
			  width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3266
			   with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3267
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3268
    "draw a bitImage which has depth id, width iw and height ih into
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3269
     the drawable. draw a region of w/h pixels from srcx/srcy to dstx/dsty.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3270
     Individual source pixels have bitsPerPixel bits, allowing to draw
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3271
     depth and pixel-units to be different.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3272
     It has to be checked elsewhere, that the server can do it with the given
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3273
     depth - otherwise, primitive failure will be signalled.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3274
     Also it is assumed, that the colormap is setup correctly and the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3275
     colors are allocated - otherwise the colors may be wrong."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3276
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3277
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3278
     sorry; I had to separate it into 2 methods, since XPutImage needs
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3279
     an unlimited stack, and thus cannot send primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3280
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3281
    (self primDrawBits:imageBits bitsPerPixel:bitsPerPixel depth:imageDepth padding:padd
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3282
					width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3283
					     x:srcx y:srcy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3284
					  into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3285
					     x:(dstx rounded) y:(dsty rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3286
					 width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3287
					  with:aGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3288
    ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3289
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3290
	 also happens, if a segmentation violation occurs in the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3291
	 XPutImage ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3292
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3293
	self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3294
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3295
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3296
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3297
drawBits:imageBits redVector:redVector greenVector:greenVector blueVector:blueVector bitsPerPixel:bitsPerPixel depth:imageDepth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3298
			      width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3299
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3300
				  x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3301
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3302
			       with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3303
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3304
    "draw a bitImage which has depth id, width iw and height ih into
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3305
     the drawable. draw a region of w/h pixels from srcx/srcy to dstx/dsty.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3306
     Individual source pixels have bitsPerPixel bits, allowing to draw
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3307
     depth and pixel-units to be different.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3308
     It has to be checked elsewhere, that the server can do it with the given
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3309
     depth - otherwise, primitive failure will be signalled.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3310
     Also it is assumed, that the colormap is setup correctly and the
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3311
     colors are allocated - otherwise the colors may be wrong."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3312
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3313
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3314
     sorry; I had to separate it into 2 methods, since XPutImage needs
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3315
     an unlimited stack, and thus cannot send primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3316
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3317
    (self primDrawBits:imageBits redVector:redVector greenVector:greenVector blueVector:blueVector bitsPerPixel:bitsPerPixel depth:imageDepth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3318
			      width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3319
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3320
				  x:(dstx rounded) y:(dsty rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3321
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3322
			       with:aGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3323
    ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3324
	self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3325
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3326
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3327
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3328
primCreateBitmapFromArray:anArray width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3329
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3330
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3331
    HBITMAP newBitmapHandle;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3332
    int b_width, b_height, bytesPerRowST, bytesPerRowWN, padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3333
    int row, col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3334
    unsigned char *cp, *bPits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3335
    unsigned char *b_bits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3336
    int index;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3337
    OBJ num;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3338
    unsigned char *allocatedBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3339
    unsigned char fastBits[10000];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3340
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3341
    if (__bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3342
     && __isNonNilObject(anArray)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3343
	OBJ cls = __qClass(anArray);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3344
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3345
	b_width = __intVal(w);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3346
	b_height = __intVal(h);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3347
	bytesPerRowST = (b_width + 7) / 8;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3348
	bytesPerRowWN = ((b_width + 15) / 16) * 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3349
	padding = bytesPerRowWN - bytesPerRowST;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3350
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3351
	if ((padding == 0) && (cls == @global(ByteArray))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3352
	    b_bits = __ByteArrayInstPtr(anArray)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3353
	    cp = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3354
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3355
	    int nBytes = b_height * bytesPerRowWN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3356
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3357
	    if (nBytes < sizeof(fastBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3358
		cp = b_bits = fastBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3359
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3360
		cp = b_bits = allocatedBits = (unsigned char *) malloc(nBytes);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3361
		if (! cp) goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3362
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3363
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3364
	if (cp) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3365
	    if (__qIsArrayLike(anArray)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3366
		OBJ *op;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3367
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3368
		index = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3369
		op = &(__ArrayInstPtr(anArray)->a_element[index - 1]);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3370
		for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3371
		    for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3372
			num = *op++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3373
			if (! __isSmallInteger(num))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3374
			    goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3375
			*cp++ = __intVal(num);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3376
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3377
		    cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3378
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3379
	    } else if (__qIsByteArrayLike(anArray)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3380
		unsigned char *pBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3381
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3382
		pBits = __ByteArrayInstPtr(anArray)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3383
		for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3384
		    for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3385
			*cp++ = ( *pBits++ /*^ 0xFF*/ );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3386
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3387
		    cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3388
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3389
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3390
		goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3391
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3392
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3393
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3394
	CPRINTF(("create bitmap ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3395
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3396
	newBitmapHandle = CreateBitmap(b_width, b_height, 1, 1, b_bits );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3397
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3398
	if (newBitmapHandle ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3399
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3400
	    DDPRINTF(("returning bitmap %x ...\n", newBitmapHandle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3401
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3402
	    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3403
		free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3404
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3405
	    RETURN ( __MKEXTERNALADDRESS(newBitmapHandle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3406
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3407
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3408
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3409
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3410
    DDPRINTF(("create bitmap FAILED!!!\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3411
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3412
    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3413
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3414
	CPRINTF(("freeing up bitmap bits ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3415
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3416
	free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3417
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3418
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3419
    CPRINTF(("returning nil ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3420
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3421
    RETURN ( nil );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3422
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3423
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3424
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3425
primDrawBits:imageBits bitsPerPixel:bitsPerPixel depth:imageDepth padding:padd
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3426
			      width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3427
				  x:srcx y:srcy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3428
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3429
				  x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3430
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3431
			       with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3432
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3433
    "since XPutImage may allocate huge amount of stack space
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3434
     (some implementations use alloca), this must run with unlimited stack."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3435
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3436
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3437
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3438
    drawableId := self drawableId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3439
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3440
    unsigned char fastBits[10000];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3441
    unsigned char *b_bits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3442
    unsigned char *allocatedBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3443
    unsigned char *__imageBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3444
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3445
    if (__isByteArray(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3446
	__imageBits = __ByteArrayInstPtr(imageBits)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3447
    } else if (__isExternalBytesLike(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3448
	__imageBits = (unsigned char *)(__externalBytesAddress(imageBits));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3449
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3450
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3451
    if (/* ISCONNECTED
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3452
     && */ __isExternalAddressLike(aGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3453
     && __bothSmallInteger(srcx, srcy)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3454
     && __bothSmallInteger(dstx, dsty)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3455
     && __bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3456
     && __bothSmallInteger(imageWidth, imageHeight)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3457
     && __bothSmallInteger(imageDepth, bitsPerPixel)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3458
     && __isSmallInteger(padd)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3459
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3460
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3461
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3462
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3463
	  BITMAPINFOHEADER bmiHeader;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3464
	  DWORD r;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3465
	  DWORD g;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3466
	  DWORD b;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3467
	} bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3468
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3469
	HANDLE hDC = (HANDLE)(__externalAddressVal(aGCId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3470
	HBITMAP hBitmap = _HBITMAPVAL(drawableId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3471
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3472
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3473
	DDPRINTF(("hDC = %x\n", hDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3474
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3475
	if (__intVal(padd) != WIN32PADDING) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3476
	    int row, col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3477
	    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3478
	    unsigned char *pBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3479
	    int b_width, b_height, bytesPerRowST, bytesPerRowWN, padding, nBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3480
	    int bi = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3481
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3482
	    b_width = __intVal(w);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3483
	    b_height = __intVal(h);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3484
	    bytesPerRowST = (b_width * bi + (__intVal(padd)-1)) / __intVal(padd);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3485
	    bytesPerRowWN = (b_width * bi + (WIN32PADDING-1)) / WIN32PADDING * (WIN32PADDING/8);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3486
	    padding = bytesPerRowWN - bytesPerRowST;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3487
	    nBytes = b_height * bytesPerRowWN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3488
	    /*console_printf("padd %d bs %d bw %d p %d\n",__intVal(padd),bytesPerRowST,bytesPerRowWN,padding);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3489
	    if (padding) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3490
		if (nBytes < sizeof(fastBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3491
		    cp = b_bits = fastBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3492
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3493
		    cp = b_bits = allocatedBits = (unsigned char *) malloc(nBytes);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3494
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3495
		if (cp) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3496
		    pBits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3497
		    for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3498
			for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3499
			    *cp++ = *pBits++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3500
			}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3501
			cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3502
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3503
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3504
		    goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3505
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3506
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3507
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3508
	if (b_bits == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3509
	    b_bits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3510
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3511
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3512
	bitmap.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3513
	bitmap.bmiHeader.biPlanes = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3514
	if (__intVal(imageDepth) == 24) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3515
	    /*bitmap.bmiHeader.biCompression = BI_BITFIELDS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3516
	    bitmap.r = 0xff0000;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3517
	    bitmap.g = 0x00ff00;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3518
	    bitmap.b = 0x0000ff;*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3519
	    bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3520
	} else if (__intVal(imageDepth) == 16) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3521
	    /*bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3522
	    bitmap.bmiHeader.biCompression = BI_BITFIELDS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3523
	    bitmap.b = 0x001f;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3524
	    bitmap.g = 0x07e0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3525
	    bitmap.r = 0xf800;*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3526
	    bitmap.b = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3527
	    bitmap.g = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3528
	    bitmap.r = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3529
	    bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3530
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3531
	bitmap.bmiHeader.biSizeImage = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3532
	bitmap.bmiHeader.biXPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3533
	bitmap.bmiHeader.biYPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3534
	bitmap.bmiHeader.biClrUsed = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3535
	bitmap.bmiHeader.biClrImportant = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3536
	bitmap.bmiHeader.biWidth = __intVal(imageWidth);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3537
	bitmap.bmiHeader.biHeight = -(__intVal(imageHeight));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3538
	bitmap.bmiHeader.biBitCount = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3539
	/*console_printf("drawBits depth:%d bitsPerPixel:%d IW%d W:%d H:%d\n",__intVal(imageDepth),bitmap.bmiHeader.biBitCount,bitmap.bmiHeader.biWidth,__intVal(w),bitmap.bmiHeader.biHeight);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3540
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3541
	SetDIBitsToDevice(hDC,__intVal(dstx),__intVal(dsty),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3542
			      __intVal(w), __intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3543
			      __intVal(srcx), __intVal(srcy),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3544
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3545
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3546
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3547
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3548
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3549
	SetDIBits(hDC,hBitmap,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3550
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3551
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3552
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3553
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3554
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3555
	StretchDIBits(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3556
		      __intVal(dstx),(__intVal(dsty)),            //  x & y coord of destination upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3557
		      __intVal(w), __intVal(h),                 // width & height of destination rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3558
		      __intVal(srcx), __intVal(srcy),           // x & y coord of source upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3559
		      __intVal(w), __intVal(h),                 // width & height of source rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3560
		      (void *)b_bits,                           // bitmap bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3561
		      (BITMAPINFO*)&bitmap,                     // bitmap data
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3562
		      DIB_RGB_COLORS,                           // usage options
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3563
		      SRCCOPY                                   // raster operation code
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3564
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3565
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3566
	if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3567
	    free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3568
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3569
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3570
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3571
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3572
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3573
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3574
	RETURN ( true );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3575
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3576
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3577
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3578
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3579
    PRINTF(("create temp bitmap FAILED!!!\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3580
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3581
    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3582
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3583
	PRINTF(("freeing up temp bitmap bits ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3584
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3585
	free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3586
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3587
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3588
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3589
    if (hDC) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3590
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3591
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3592
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3593
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3594
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3595
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3596
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3597
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3598
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3599
primDrawBits:imageBits redVector:redVector greenVector:greenVector blueVector:blueVector bitsPerPixel:bitsPerPixel depth:imageDepth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3600
			      width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3601
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3602
				  x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3603
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3604
			       with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3605
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3606
    "since XPutImage may allocate huge amount of stack space
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3607
     (some implementations use alloca), this must run with unlimited stack."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3608
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3609
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3610
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3611
    drawableId := self drawableId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3612
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3613
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3614
    unsigned char fastBits[10000];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3615
    unsigned char *b_bits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3616
    unsigned char *allocatedBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3617
    unsigned char *__imageBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3618
    unsigned char *__redVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3619
    unsigned char *__greenVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3620
    unsigned char *__blueVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3621
    int padd = 8;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3622
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3623
    if (__isByteArray(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3624
	__imageBits = __ByteArrayInstPtr(imageBits)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3625
    } else if (__isExternalBytesLike(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3626
	__imageBits = (unsigned char *)(__externalBytesAddress(imageBits));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3627
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3628
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3629
    if (__isByteArray(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3630
	__redVector = __ByteArrayInstPtr(redVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3631
    } else if (__isExternalBytesLike(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3632
	__redVector = (unsigned char *)(__externalBytesAddress(redVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3633
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3634
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3635
    if (__isByteArray(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3636
	__greenVector = __ByteArrayInstPtr(greenVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3637
    } else if (__isExternalBytesLike(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3638
	__greenVector = (unsigned char *)(__externalBytesAddress(greenVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3639
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3640
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3641
    if (__isByteArray(blueVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3642
	__blueVector = __ByteArrayInstPtr(blueVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3643
    } else if (__isExternalBytesLike(blueVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3644
	__blueVector = (unsigned char *)(__externalBytesAddress(blueVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3645
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3646
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3647
    if (/* ISCONNECTED
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3648
     && */ __isExternalAddressLike(aGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3649
//     && __bothSmallInteger(srcx, srcy)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3650
     && __bothSmallInteger(dstx, dsty)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3651
     && __bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3652
     && __bothSmallInteger(imageWidth, imageHeight)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3653
     && __bothSmallInteger(imageDepth, bitsPerPixel)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3654
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3655
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3656
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3657
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3658
	  BITMAPINFOHEADER bmiHeader;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3659
	  RGBQUAD bmiColors[256];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3660
	} bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3661
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3662
	HANDLE hDC = (HANDLE)(__externalAddressVal(aGCId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3663
	HBITMAP hBitmap = _HBITMAPVAL(drawableId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3664
	int col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3665
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3666
	DDPRINTF(("hDC = %x\n", hDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3667
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3668
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3669
	if (padd != WIN32PADDING) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3670
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3671
	    int row, col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3672
	    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3673
	    unsigned char *pBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3674
	    int b_width, b_height, bytesPerRowST, bytesPerRowWN, padding, nBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3675
	    int bi = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3676
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3677
//            console_fprintf(stderr, "Non WIN32PADDING");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3678
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3679
	    b_width = __intVal(w);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3680
	    b_height = __intVal(h);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3681
	    bytesPerRowST = (b_width * bi + (padd - 1 )) / padd;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3682
	    bytesPerRowWN = (b_width * bi + (WIN32PADDING-1)) / WIN32PADDING * (WIN32PADDING/8);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3683
	    padding = bytesPerRowWN - bytesPerRowST;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3684
	    nBytes = b_height * bytesPerRowWN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3685
	    /*console_printf("padd %d bs %d bw %d p %d\n",__intVal(padd),bytesPerRowST,bytesPerRowWN,padding);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3686
	    if (padding) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3687
		if (nBytes < sizeof(fastBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3688
		    cp = b_bits = fastBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3689
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3690
		    cp = b_bits = allocatedBits = (unsigned char *) malloc(nBytes);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3691
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3692
		if (cp) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3693
		    pBits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3694
		    for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3695
			for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3696
			    *cp++ = *pBits++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3697
			}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3698
			cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3699
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3700
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3701
		    goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3702
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3703
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3704
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3705
	if (b_bits == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3706
	    b_bits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3707
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3708
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3709
	bitmap.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3710
	bitmap.bmiHeader.biPlanes = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3711
	bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3712
	bitmap.bmiHeader.biSizeImage = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3713
	bitmap.bmiHeader.biXPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3714
	bitmap.bmiHeader.biYPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3715
	bitmap.bmiHeader.biClrUsed = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3716
	bitmap.bmiHeader.biClrImportant = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3717
	bitmap.bmiHeader.biWidth = __intVal(imageWidth);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3718
	bitmap.bmiHeader.biHeight = -(__intVal(imageHeight));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3719
	bitmap.bmiHeader.biBitCount = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3720
	/*console_printf("drawBits depth:%d bitsPerPixel:%d IW%d W:%d H:%d\n",__intVal(imageDepth),bitmap.bmiHeader.biBitCount,bitmap.bmiHeader.biWidth,__intVal(w),bitmap.bmiHeader.biHeight);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3721
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3722
	if (__intVal(imageDepth) <= 8) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3723
	    for(col=0;col<256;col++)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3724
	     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3725
	      bitmap.bmiColors[col].rgbBlue = __blueVector[col];    // Microsoft idea: change rgbBlue to rgbRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3726
	      bitmap.bmiColors[col].rgbGreen = __greenVector[col];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3727
	      bitmap.bmiColors[col].rgbRed = __redVector[col];         // Microsoft idea: change rgbRed to rgbBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3728
	      bitmap.bmiColors[col].rgbReserved = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3729
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3730
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3731
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3732
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3733
	bitmap.bmiColors[255].rgbBlue=255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3734
	bitmap.bmiColors[255].rgbGreen=255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3735
	bitmap.bmiColors[255].rgbRed =255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3736
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3737
	SetDIBitsToDevice(hDC,__intVal(dstx),__intVal(dsty),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3738
			      __intVal(w), __intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3739
			      0, 0, /* __intVal(srcx), __intVal(srcy),    */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3740
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3741
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3742
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3743
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3744
	SetDIBits(hDC,hBitmap,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3745
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3746
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3747
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3748
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3749
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3750
	StretchDIBits(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3751
		      __intVal(dstx),(__intVal(dsty)),            //  x & y coord of destination upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3752
		      __intVal(w), __intVal(h),                 // width & height of destination rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3753
		      __intVal(srcx), __intVal(srcy),           // x & y coord of source upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3754
		      __intVal(w), __intVal(h),                 // width & height of source rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3755
		      (void *)b_bits,                           // bitmap bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3756
		      (BITMAPINFO*)&bitmap,                     // bitmap data
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3757
		      DIB_RGB_COLORS,                           // usage options
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3758
		      SRCCOPY                                   // raster operation code
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3759
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3760
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3761
	if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3762
	    free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3763
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3764
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3765
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3766
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3767
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3768
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3769
	RETURN ( true );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3770
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3771
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3772
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3773
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3774
    PRINTF(("create temp bitmap FAILED!!!\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3775
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3776
    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3777
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3778
	PRINTF(("freeing up temp bitmap bits ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3779
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3780
	free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3781
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3782
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3783
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3784
    if (hDC) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3785
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3786
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3787
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3788
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3789
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3790
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3791
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3792
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3793
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3794
setFunction:aFunctionSymbol in:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3795
    "set alu function to be drawn with"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3796
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3797
    Transcript showCR: aFunctionSymbol printString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3798
    self function: aFunctionSymbol.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3799
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3800
"/%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3801
"/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3802
"/    if (__isExternalAddress(aGCId)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3803
"/        struct gcData *gcData = _GCDATA(aGCId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3804
"/        int fun = -1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3805
"/        int bfun = -1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3806
"/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3807
"/        if (aFunctionSymbol == @symbol(copy)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3808
"/            fun = R2_COPYPEN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3809
"/            bfun = BITBLT_COPY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3810
"/        } else if (aFunctionSymbol == @symbol(copyInverted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3811
"/            fun = R2_NOTCOPYPEN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3812
"/            bfun = BITBLT_COPYINVERTED;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3813
"/        } else if (aFunctionSymbol == @symbol(xor)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3814
"/            fun = R2_XORPEN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3815
"/            bfun = BITBLT_XOR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3816
"/        } else if (aFunctionSymbol == @symbol(and)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3817
"/            fun = R2_MASKPEN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3818
"/            bfun = BITBLT_AND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3819
"/        } else if (aFunctionSymbol == @symbol(or)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3820
"/            fun = R2_MERGEPEN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3821
"/            bfun = BITBLT_OR;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3822
"/        }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3823
"/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3824
"/        if (fun
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3825
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3826
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3827
setGraphicsExposures:aBoolean in:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3828
    "set or clear the graphics exposures flag"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3829
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3830
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3831
shiftBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3832
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3833
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3834
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3835
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3836
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3837
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3838
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3839
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3840
     ^Display shiftBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3841
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3842
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3843
shiftGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3844
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3845
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3846
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3847
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3848
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3849
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3850
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3851
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3852
     ^Display shiftGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3853
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3854
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3855
shiftRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3856
    "return the number of valid bits in the red component."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3857
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3858
"/    bitsRed isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3859
"/        "/ not a truecolor display
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3860
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3861
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3862
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3863
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3864
     ^Display shiftRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3865
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3866
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3867
sortBlockForColors
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3868
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3869
    ^ [:a :b |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3870
	    a redByte == b redByte ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3871
		a greenByte == b greenByte ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3872
		    a blueByte < b blueByte
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3873
		] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3874
		    a greenByte < b greenByte
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3875
		]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3876
	    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3877
		a redByte < b redByte
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3878
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3879
      ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3880
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3881
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3882
sortColorMapImage: image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3883
    "calculates a new color map for the image, sorting colors"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3884
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3885
    |sortBlock depth newColorMap newImage oldImage usedColors oldToNew oldBits newBits tmpBits|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3886
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3887
    sortBlock := self sortBlockForColors.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3888
    oldImage := image.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3889
    depth := oldImage depth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3890
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3891
    oldImage photometric ~~ #palette ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3892
	Transcript showCR:'Compress colorMap: Only palette images have colormaps.'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3893
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3894
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3895
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3896
    usedColors := oldImage realColorMap.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3897
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3898
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3899
	"/ translation table
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3900
	oldToNew := ByteArray new:(1 bitShift:depth).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3901
	newColorMap := usedColors asArray.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3902
	newColorMap sort:sortBlock.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3903
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3904
	oldImage colorMap asArray keysAndValuesDo:[:oldIdx :clr |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3905
	    |newPixel|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3906
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3907
	    (usedColors includes:clr) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3908
		newPixel := newColorMap indexOf:clr.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3909
		oldToNew at:oldIdx put:newPixel-1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3910
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3911
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3912
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3913
	oldBits := oldImage bits.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3914
	newBits := ByteArray new:(oldBits size).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3915
	depth ~~ 8 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3916
	    "/ expand/compress can only handle 8bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3917
	    tmpBits := ByteArray uninitializedNew:(oldImage width*oldImage height).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3918
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3919
		expandPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3920
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3921
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3922
		into:tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3923
		mapping:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3924
	    tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3925
		compressPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3926
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3927
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3928
		into:newBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3929
		mapping:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3930
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3931
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3932
		expandPixels:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3933
		width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3934
		height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3935
		into:newBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3936
		mapping:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3937
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3938
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3939
	newImage := oldImage species new
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3940
			width:oldImage width
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3941
			height:oldImage height
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3942
			depth:depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3943
			fromArray:newBits.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3944
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3945
	newImage colorMap:newColorMap.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3946
	newImage fileName:oldImage fileName.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3947
	newImage mask:(oldImage mask copy).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3948
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3949
	^newImage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3950
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3951
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3952
transparencyTest_primDrawBits:imageBits redVector:redVector greenVector:greenVector blueVector:blueVector bitsPerPixel:bitsPerPixel depth:imageDepth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3953
			      width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3954
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3955
				  x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3956
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3957
			       with:aGCId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3958
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3959
    "since XPutImage may allocate huge amount of stack space
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3960
     (some implementations use alloca), this must run with unlimited stack."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3961
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3962
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3963
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3964
    drawableId := self drawableId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3965
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3966
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3967
    unsigned char fastBits[10000];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3968
    unsigned char *b_bits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3969
    unsigned char *allocatedBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3970
    unsigned char *__imageBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3971
    unsigned char *__redVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3972
    unsigned char *__greenVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3973
    unsigned char *__blueVector = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3974
    int padd = 8;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3975
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3976
    if (__isByteArray(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3977
	__imageBits = __ByteArrayInstPtr(imageBits)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3978
    } else if (__isExternalBytesLike(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3979
	__imageBits = (unsigned char *)(__externalBytesAddress(imageBits));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3980
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3981
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3982
    if (__isByteArray(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3983
	__redVector = __ByteArrayInstPtr(redVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3984
    } else if (__isExternalBytesLike(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3985
	__redVector = (unsigned char *)(__externalBytesAddress(redVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3986
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3987
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3988
    if (__isByteArray(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3989
	__greenVector = __ByteArrayInstPtr(greenVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3990
    } else if (__isExternalBytesLike(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3991
	__greenVector = (unsigned char *)(__externalBytesAddress(greenVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3992
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3993
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3994
    if (__isByteArray(blueVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3995
	__blueVector = __ByteArrayInstPtr(blueVector)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3996
    } else if (__isExternalBytesLike(blueVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3997
	__blueVector = (unsigned char *)(__externalBytesAddress(blueVector));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3998
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3999
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4000
    if (/* ISCONNECTED
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4001
     && */ __isExternalAddressLike(aGCId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4002
//     && __bothSmallInteger(srcx, srcy)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4003
     && __bothSmallInteger(dstx, dsty)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4004
     && __bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4005
     && __bothSmallInteger(imageWidth, imageHeight)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4006
     && __bothSmallInteger(imageDepth, bitsPerPixel)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4007
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4008
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4009
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4010
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4011
	  BITMAPINFOHEADER bmiHeader;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4012
	  RGBQUAD bmiColors[256];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4013
	} bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4014
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4015
	HANDLE hDC = (HANDLE)(__externalAddressVal(aGCId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4016
	HBITMAP hBitmap = _HBITMAPVAL(drawableId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4017
	int col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4018
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4019
	DDPRINTF(("hDC = %x\n", hDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4020
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4021
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4022
	if (padd != WIN32PADDING) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4023
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4024
	    int row, col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4025
	    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4026
	    unsigned char *pBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4027
	    int b_width, b_height, bytesPerRowST, bytesPerRowWN, padding, nBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4028
	    int bi = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4029
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4030
//            console_fprintf(stderr, "Non WIN32PADDING");
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4031
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4032
	    b_width = __intVal(w);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4033
	    b_height = __intVal(h);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4034
	    bytesPerRowST = (b_width * bi + (padd - 1 )) / padd;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4035
	    bytesPerRowWN = (b_width * bi + (WIN32PADDING-1)) / WIN32PADDING * (WIN32PADDING/8);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4036
	    padding = bytesPerRowWN - bytesPerRowST;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4037
	    nBytes = b_height * bytesPerRowWN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4038
	    /*console_printf("padd %d bs %d bw %d p %d\n",__intVal(padd),bytesPerRowST,bytesPerRowWN,padding);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4039
	    if (padding) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4040
		if (nBytes < sizeof(fastBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4041
		    cp = b_bits = fastBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4042
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4043
		    cp = b_bits = allocatedBits = (unsigned char *) malloc(nBytes);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4044
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4045
		if (cp) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4046
		    pBits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4047
		    for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4048
			for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4049
			    *cp++ = *pBits++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4050
			}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4051
			cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4052
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4053
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4054
		    goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4055
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4056
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4057
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4058
	if (b_bits == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4059
	    b_bits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4060
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4061
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4062
	bitmap.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4063
	bitmap.bmiHeader.biPlanes = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4064
	bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4065
	bitmap.bmiHeader.biSizeImage = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4066
	bitmap.bmiHeader.biXPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4067
	bitmap.bmiHeader.biYPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4068
	bitmap.bmiHeader.biClrUsed = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4069
	bitmap.bmiHeader.biClrImportant = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4070
	bitmap.bmiHeader.biWidth = __intVal(imageWidth);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4071
	bitmap.bmiHeader.biHeight = -(__intVal(imageHeight));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4072
	bitmap.bmiHeader.biBitCount = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4073
	/*console_printf("drawBits depth:%d bitsPerPixel:%d IW%d W:%d H:%d\n",__intVal(imageDepth),bitmap.bmiHeader.biBitCount,bitmap.bmiHeader.biWidth,__intVal(w),bitmap.bmiHeader.biHeight);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4074
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4075
	if (__intVal(imageDepth) <= 8) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4076
	    for(col=0;col<256;col++)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4077
	     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4078
	      bitmap.bmiColors[col].rgbBlue = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4079
	      bitmap.bmiColors[col].rgbGreen = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4080
	      bitmap.bmiColors[col].rgbRed = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4081
	      bitmap.bmiColors[col].rgbReserved = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4082
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4083
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4084
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4085
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4086
	bitmap.bmiColors[255].rgbBlue=255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4087
	bitmap.bmiColors[255].rgbGreen=255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4088
	bitmap.bmiColors[255].rgbRed =255;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4089
	bitmap.bmiColors[255].rgbReserved = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4090
	StretchDIBits(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4091
		      __intVal(dstx),(__intVal(dsty)),            //  x & y coord of destination upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4092
		      __intVal(w), __intVal(h),                 // width & height of destination rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4093
		      0, 0,  /* __intVal(srcx), __intVal(srcy),    */   // x & y coord of source upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4094
		      __intVal(w), __intVal(h),                 // width & height of source rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4095
		      (void *)b_bits,                           // bitmap bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4096
		      (BITMAPINFO*)&bitmap,                     // bitmap data
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4097
		      DIB_RGB_COLORS,                           // usage options
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4098
		      SRCAND                                   // raster operation code
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4099
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4100
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4101
	if (__intVal(imageDepth) <= 8) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4102
	    for(col=0;col<256;col++)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4103
	     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4104
	      bitmap.bmiColors[col].rgbBlue = __blueVector[col];    // Microsoft idea: change rgbBlue to rgbRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4105
	      bitmap.bmiColors[col].rgbGreen = __greenVector[col];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4106
	      bitmap.bmiColors[col].rgbRed = __redVector[col];         // Microsoft idea: change rgbRed to rgbBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4107
	      bitmap.bmiColors[col].rgbReserved = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4108
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4109
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4110
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4111
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4112
	bitmap.bmiColors[255].rgbBlue=0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4113
	bitmap.bmiColors[255].rgbGreen=0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4114
	bitmap.bmiColors[255].rgbRed =0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4115
	bitmap.bmiColors[255].rgbReserved = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4116
	StretchDIBits(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4117
		      __intVal(dstx),(__intVal(dsty)),            //  x & y coord of destination upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4118
		      __intVal(w), __intVal(h),                 // width & height of destination rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4119
		      0, 0,                                     // x & y coord of source upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4120
		      __intVal(w), __intVal(h),                 // width & height of source rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4121
		      (void *)b_bits,                           // bitmap bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4122
		      (BITMAPINFO*)&bitmap,                     // bitmap data
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4123
		      DIB_RGB_COLORS,                           // usage options
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4124
		      SRCPAINT                                  // raster operation code
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4125
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4126
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4127
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4128
	SetDIBitsToDevice(hDC,__intVal(dstx),__intVal(dsty),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4129
			      __intVal(w), __intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4130
			      0, 0,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4131
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4132
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4133
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4134
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4135
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4136
	SetDIBits(hDC,hBitmap,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4137
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4138
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4139
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4140
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4141
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4142
	StretchDIBits(hDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4143
		      __intVal(dstx),(__intVal(dsty)),            //  x & y coord of destination upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4144
		      __intVal(w), __intVal(h),                 // width & height of destination rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4145
		      __intVal(srcx), __intVal(srcy),           // x & y coord of source upper-left corner
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4146
		      __intVal(w), __intVal(h),                 // width & height of source rectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4147
		      (void *)b_bits,                           // bitmap bits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4148
		      (BITMAPINFO*)&bitmap,                     // bitmap data
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4149
		      DIB_RGB_COLORS,                           // usage options
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4150
		      SRCCOPY                                   // raster operation code
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4151
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4152
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4153
	if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4154
	    free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4155
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4156
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4157
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4158
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4159
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4160
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4161
	RETURN ( true );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4162
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4163
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4164
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4165
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4166
    PRINTF(("create temp bitmap FAILED!!!\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4167
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4168
    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4169
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4170
	PRINTF(("freeing up temp bitmap bits ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4171
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4172
	free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4173
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4174
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4175
#ifndef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4176
    if (hDC) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4177
	_releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4178
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4179
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4180
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4181
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4182
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4183
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4184
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4185
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4186
!WinPrinterContext methodsFor:'font stuff'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4187
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4188
createFontFor:aFontName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4189
    "a basic method for font allocation; this method allows
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4190
     any font to be aquired (even those not conforming to
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4191
     standard naming conventions, such as cursor, fixed or k14)"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4192
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4193
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4194
    HGDIOBJ hFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4195
    char *fn;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4196
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4197
    if (__isStringLike(aFontName)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4198
	fn = __stringVal(aFontName);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4199
	if ((strcmp(fn, "fixed") == 0) || (strcmp(fn, "ANSI_FIXED_FONT") == 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4200
	    hFont = GetStockObject(ANSI_FIXED_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4201
	} else if ((strcmp(fn, "variable") == 0) || (strcmp(fn, "ANSI_VAR_FONT") == 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4202
	    hFont = GetStockObject(ANSI_VAR_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4203
	} else if ((strcmp(fn, "system") == 0) || (strcmp(fn, "SYSTEM_FONT") == 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4204
	    hFont = GetStockObject(SYSTEM_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4205
	} else if ((strcmp(fn, "systemFixed") == 0) || (strcmp(fn, "SYSTEM_FIXED_FONT") == 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4206
	    hFont = GetStockObject(SYSTEM_FIXED_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4207
	} else if ((strcmp(fn, "deviceDefault") == 0) || (strcmp(fn, "DEVICE_DEFAULT_FONT") == 0)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4208
	    hFont = GetStockObject(DEVICE_DEFAULT_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4209
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4210
	    hFont = GetStockObject(ANSI_FIXED_FONT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4211
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4212
	if (hFont) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4213
	    DPRINTF(("createFontFor:%s -> %x\n", fn, hFont));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4214
	    RETURN ( __MKEXTERNALADDRESS(hFont) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4215
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4216
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4217
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4218
    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4219
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4220
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4221
fontMetricsOf:fontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4222
    "return a fonts metrics info object"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4223
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4224
    |rawData info|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4225
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4226
    rawData := Array new:15.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4227
    (self primFontMetricsOf:fontId hdc:self gcId intoArray:rawData) isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4228
	self primitiveFailed.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4229
	^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4230
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4231
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4232
    rawData at:11 put:#'ms-ansi'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4233
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4234
    info := DeviceWorkstation::DeviceFontMetrics new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4235
    info
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4236
      ascent:(rawData at:1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4237
      descent:(rawData at:2)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4238
      maxAscent:(rawData at:3)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4239
      maxDescent:(rawData at:4)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4240
      minWidth:(rawData at:5)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4241
      maxWidth:(rawData at:6)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4242
      avgWidth:(rawData at:7)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4243
      minCode:(rawData at:8)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4244
      maxCode:16rFFFF "(rawData at:9)"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4245
      direction:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4246
      encoding:(rawData at:11).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4247
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4248
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4249
    ^ info
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4250
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4251
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4252
getDefaultFontWithEncoding:encoding
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4253
    "return a default font id - used when class Font cannot
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4254
     find anything usable"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4255
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4256
     ^ self createFontFor:'fixed'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4257
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4258
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4259
getFontWithFamily:familyString face:faceString style:styleString size:sizeArg encoding:encodingSym
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4260
    "try to get the specified font, return id.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4261
     If not available, try next smaller font.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4262
     If no font fits, return nil"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4263
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4264
    ^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4265
	getFontWithFamily:familyString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4266
	face:faceString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4267
	style:styleString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4268
	size:sizeArg
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4269
	sizeUnit:#pt
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4270
	encoding:encodingSym
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4271
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4272
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4273
getFontWithFamily:familyString face:faceString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4274
	    style:styleArgString size:sizeArgOrNil sizeUnit:sizeUnit encoding:encodingSym
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4275
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4276
    "try to get the specified font, if not available, try the next smaller
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4277
     font."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4278
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4279
    |styleString theName theId xlatedStyle id spacing|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4280
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4281
    self assert:(sizeUnit == #pt).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4282
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4283
    styleString := styleArgString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4284
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4285
    "special: if face is nil, allow access to X-fonts"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4286
    faceString isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4287
	sizeArgOrNil notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4288
	    theName := familyString , '-' , sizeArgOrNil printString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4289
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4290
	    theName := familyString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4291
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4292
	theName notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4293
	    theId := self createFontFor:theName.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4294
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4295
	theId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4296
	    theId := self getDefaultFontWithEncoding:encodingSym
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4297
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4298
	^ theId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4299
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4300
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4301
    "/ spacing other than 'normal' is contained as last component
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4302
    "/ in style
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4303
    styleString notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4304
	((styleString endsWith:'-narrow')
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4305
	 or:[styleString endsWith:'-semicondensed']) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4306
	    |i|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4307
	    i := styleString lastIndexOf:$-.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4308
	    spacing := styleString copyFrom:(i+1).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4309
	    styleString := styleString copyTo:(i-1).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4310
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4311
	    spacing := 'normal'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4312
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4313
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4314
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4315
    xlatedStyle := styleString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4316
    xlatedStyle notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4317
	xlatedStyle := xlatedStyle first asString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4318
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4319
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4320
    id := self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4321
	    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4322
	    family:familyString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4323
	    weight:faceString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4324
	    slant:styleString "/ xlatedStyle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4325
	    spacing:spacing
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4326
	    pixelSize:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4327
	    size:sizeArgOrNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4328
	    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4329
	    encoding:encodingSym.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4330
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4331
    id isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4332
	(encodingSym notNil and:[encodingSym ~= '*']) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4333
	    "/ too stupid: encodings come in both cases
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4334
	    "/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4335
	    id := self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4336
		    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4337
		    family:familyString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4338
		    weight:faceString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4339
		    slant:styleString "/ xlatedStyle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4340
		    spacing:spacing
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4341
		    pixelSize:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4342
		    size:sizeArgOrNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4343
		    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4344
		    encoding:encodingSym asUppercase.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4345
	    id isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4346
		id := self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4347
			getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4348
			family:familyString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4349
			weight:faceString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4350
			slant:styleString "/ xlatedStyle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4351
			spacing:spacing
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4352
			pixelSize:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4353
			size:sizeArgOrNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4354
			registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4355
			encoding:encodingSym asLowercase.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4356
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4357
		id isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4358
		    id := self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4359
			    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4360
			    family:familyString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4361
			    weight:faceString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4362
			    slant:styleString asLowercase
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4363
			    spacing:spacing
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4364
			    pixelSize:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4365
			    size:sizeArgOrNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4366
			    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4367
			    encoding:encodingSym asLowercase.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4368
		]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4369
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4370
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4371
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4372
    ^ id
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4373
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4374
    "Modified: 24.2.1996 / 22:37:24 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4375
    "Modified: 4.7.1996 / 11:38:47 / stefan"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4376
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4377
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4378
getFontWithFoundry:foundry family:family weight:weight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4379
	      slant:slant spacing:spc pixelSize:pixelSize size:pointSize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4380
	      registry:registry encoding:encodingArg
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4381
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4382
    "get the specified font, if not available, return nil.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4383
     For now, this is a poor (incomplete) emulation of the X code ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4384
     Individual attributes can be left empty (i.e. '') or nil to match any.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4385
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4386
     foundry:   'adobe', 'misc', 'dec', 'schumacher' ... usually '*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4387
     family:    'helvetica' 'courier' 'times' ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4388
     weight:    'bold' 'medium' 'demi' ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4389
     slant:     'r(oman)' 'i(talic)' 'o(blique)'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4390
     spacing:   'narrow' 'normal' semicondensed' ... usually '*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4391
     pixelSize: 16,18 ... usually left empty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4392
     size:      size in point (1/72th of an inch)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4393
     registry:  iso8859, sgi ... '*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4394
     encoding:  vendor specific encoding (usually '*')
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4395
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4396
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4397
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4398
     Windows-NT/95 allows the creation of a font with the following parameters
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4399
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4400
	nHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4401
	nWidth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4402
	nEscapement
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4403
	nOrientation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4404
	fnWeight        FW_DONTCARE, FW_NORMAL, FW_MEDIUM, FW_BOLD, ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4405
	fdwItalic       TRUE or FALSE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4406
	fdwUnderline    TRUE or FALSE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4407
	fdwStrikeOut    TRUE or FALSE
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4408
	fdwCharSet      ANSI_CHARSET, UNICODE_, SYMBOL_, SHIFTJIS_,...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4409
	fdwOutputPrecision      DEFAULT, STRING, CHAR, ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4410
	fdwClipPrecision        DEFAULT, CHAR, STROKE, MASK, ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4411
	fdwQuality      DEFAULT, DRAFT, or PROOF.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4412
	fdwPitchAndFamily
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4413
		DEFAULT, FIXED or VARIABLE pitch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4414
		DECORATIVE, DONTCASE, MODERN, ROMAN, SCRIPT, or SWISS.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4415
	lpszFace
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4416
		Typeface Name
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4417
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4418
      These two above descriptions will be matched as follows:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4419
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4420
	foundry   - ignored
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4421
	family    - mapped to type face name.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4422
	weight    - mapped to fnWeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4423
	slant     - used for style
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4424
	spacing   - NOT USED INITIALLY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4425
	pixelSize - NOT USED INITIALLY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4426
	size      - mapped to nHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4427
	registry  - NOT USED INITIALLY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4428
	encoding  - mapped to fdwCharSet
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4429
     "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4430
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4431
    |logSize encoding|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4432
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4433
    encoding := encodingArg asSymbol.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4434
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4435
    pixelSize notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4436
	logSize := pixelSize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4437
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4438
	logSize := (pointSize * (self getLogicalPixelSizeY) / 72.0) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4439
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4440
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4441
    HGDIOBJ hFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4442
    int  nHeight, nWidth, nEscapement, nOrientation;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4443
    char* work;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4444
    char* work2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4445
    DWORD fnWeight;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4446
    DWORD fdwItalic;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4447
    DWORD fdwUnderline;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4448
    DWORD fdwStrikeOut;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4449
    DWORD fdwCharSet;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4450
    DWORD fdwOutputPrecision;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4451
    DWORD fdwClipPrecision;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4452
    DWORD fdwQuality;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4453
    DWORD fdwPitchAndFamily;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4454
    static char faceName[256];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4455
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4456
/* INITIALIZE */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4457
    strcpy( faceName, "NULL" );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4458
    nHeight   = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4459
    nWidth   = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4460
    nEscapement = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4461
    nOrientation = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4462
    fnWeight = FW_NORMAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4463
    fdwItalic = FALSE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4464
    fdwUnderline = FALSE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4465
    fdwStrikeOut = FALSE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4466
    fdwOutputPrecision = OUT_DEFAULT_PRECIS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4467
    fdwClipPrecision   = CLIP_DEFAULT_PRECIS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4468
    fdwQuality         = DEFAULT_QUALITY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4469
    fdwPitchAndFamily  = FF_DONTCARE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4470
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4471
    fdwCharSet   = ANSI_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4472
    if ((encoding == @symbol('ms-ansi'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4473
	fdwCharSet   = ANSI_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4474
    } else if (encoding == @symbol('ms-default')
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4475
	       || encoding == @symbol(*)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4476
	fdwCharSet   = DEFAULT_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4477
    } else if ((encoding == @symbol('ms-symbol'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4478
	    || (encoding == @symbol('misc-fontspecific'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4479
	fdwCharSet   = SYMBOL_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4480
    } else if ((encoding == @symbol('ms-shiftjis'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4481
	    || (encoding == @symbol('jisx0208.1983-0'))){
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4482
	fdwCharSet   = SHIFTJIS_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4483
    } else if ((encoding == @symbol('ms-gb2312'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4484
	    || (encoding == @symbol('gb2312.1980-0'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4485
	fdwCharSet   = GB2312_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4486
    } else if ((encoding == @symbol('ms-hangeul'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4487
	    || (encoding == @symbol('ksc5601.1987-0'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4488
	fdwCharSet   = HANGEUL_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4489
    } else if ((encoding == @symbol('ms-chinesebig5'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4490
	    || (encoding == @symbol('big5'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4491
	fdwCharSet   = CHINESEBIG5_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4492
    } else if (encoding == @symbol('ms-oem')) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4493
	fdwCharSet   = OEM_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4494
    } else if (encoding == @symbol('ms-johab')) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4495
	fdwCharSet   = JOHAB_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4496
    } else if ((encoding == @symbol('ms-hebrew'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4497
	    || (encoding == @symbol('ms-cp1255'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4498
	fdwCharSet   = HEBREW_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4499
    } else if ((encoding == @symbol('ms-arabic'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4500
	    || (encoding == @symbol('ms-cp1256'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4501
	fdwCharSet   = ARABIC_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4502
    } else if ((encoding == @symbol('ms-greek'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4503
	    || (encoding == @symbol('ms-cp1253'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4504
	fdwCharSet   = GREEK_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4505
    } else if ((encoding == @symbol('ms-turkish'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4506
	    || (encoding == @symbol('ms-cp1254'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4507
	fdwCharSet   = TURKISH_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4508
    } else if ((encoding == @symbol('ms-russian'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4509
	    || (encoding == @symbol('ms-cp1251'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4510
	fdwCharSet   = RUSSIAN_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4511
    } else if ((encoding == @symbol('ms-easteurope'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4512
	    || (encoding == @symbol('ms-cp1250'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4513
	fdwCharSet   = EASTEUROPE_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4514
    } else if ((encoding == @symbol('ms-baltic'))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4515
	    || (encoding == @symbol('ms-cp1257'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4516
	fdwCharSet   = BALTIC_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4517
    } else if ((encoding == @symbol('ms-vietnamese'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4518
	fdwCharSet   = VIETNAMESE_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4519
    } else if ((encoding == @symbol('ms-thai'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4520
	fdwCharSet   = THAI_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4521
    } else if ((encoding == @symbol('ms-mac'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4522
	fdwCharSet   = MAC_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4523
#ifdef UNICODE_CHARSET
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4524
    } else if ((encoding == @symbol('ms-unicode'))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4525
	fdwCharSet   = UNICODE_CHARSET;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4526
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4527
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4528
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4529
    if ( __isString( family ) ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4530
	work = __stringVal( family );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4531
	if (strcmp( work, "nil" ) != 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4532
	    strncpy( faceName, work, sizeof(faceName)-1 );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4533
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4534
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4535
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4536
    /* Q: should we allow those ? (they make ST/X programs less portable to X */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4537
    if( __isString( weight ) ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4538
	work = __stringVal( weight );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4539
	if (strcmp( work, "bold" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4540
	    fnWeight = FW_BOLD;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4541
	} else if (strcmp( work, "medium" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4542
	    fnWeight = FW_MEDIUM;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4543
	} else if (strcmp( work, "normal" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4544
	    fnWeight = FW_NORMAL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4545
	} else if (strcmp( work, "light" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4546
	    fnWeight = FW_LIGHT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4547
	} else if (strcmp( work, "demi" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4548
	    fnWeight = FW_LIGHT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4549
	} else if (strcmp( work, "heavy" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4550
	    fnWeight = FW_HEAVY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4551
	} else if (strcmp( work, "extraBold" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4552
	    fnWeight = FW_EXTRABOLD;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4553
	} else if (strcmp( work, "semiBold" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4554
	    fnWeight = FW_SEMIBOLD;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4555
	} else if (strcmp( work, "thin" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4556
	    fnWeight = FW_THIN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4557
	} else if (strcmp( work, "extraLight" ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4558
	    fnWeight = FW_EXTRALIGHT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4559
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4560
    } else if (__isSmallInteger(weight)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4561
	fnWeight = __intVal(weight);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4562
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4563
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4564
    if(__isSmallInteger( logSize )) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4565
	nHeight = __intVal( logSize );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4566
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4567
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4568
    if (__isString(slant)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4569
	work2 = __stringVal( slant );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4570
	work  = __stringVal( slant );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4571
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4572
	if (strncmp(work2, "italic", 6) == 0)  {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4573
	    fdwItalic = TRUE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4574
	    if ( work2[6] == '-' )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4575
		strncpy( work, &work2[7], ( strlen( work2) - 7) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4576
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4577
	    if (strncmp(work2, "oblique", 7) == 0)  {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4578
		fdwItalic = TRUE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4579
		if ( work2[7] == '-' )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4580
		    strncpy( work, &work2[8], ( strlen( work2) - 8) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4581
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4582
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4583
	if (strncmp( work, "underline", 9 ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4584
	    fdwUnderline = TRUE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4585
	    if( work[10] == '-' )
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4586
		strncpy( work2, &work[11], ( strlen( work ) - 10 ) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4587
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4588
	if (strncmp( work2, "strikeOut", 9 ) == 0 ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4589
	    fdwStrikeOut = TRUE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4590
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4591
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4592
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4593
    DPRINTF(("CreateFont face:%s h=%d w=%d wght=%d\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4594
		faceName, nHeight, nWidth, fnWeight));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4595
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4596
    hFont = CreateFont( -nHeight,   /* character height - not cell height */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4597
			nWidth,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4598
			nEscapement,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4599
			nOrientation,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4600
			fnWeight,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4601
			fdwItalic,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4602
			fdwUnderline,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4603
			fdwStrikeOut,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4604
			fdwCharSet,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4605
			fdwOutputPrecision,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4606
			fdwClipPrecision,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4607
			fdwQuality,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4608
			fdwPitchAndFamily,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4609
			faceName );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4610
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4611
    if (hFont != NULL) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4612
	DPRINTF(("createFont: %x\n", hFont));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4613
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4614
    #ifdef COUNT_RESOURCES
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4615
	__cnt_font++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4616
	RES1PRINTF(("CreateFont %d\n", __cnt_font));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4617
    #endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4618
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4619
	RETURN ( __MKEXTERNALADDRESS(hFont) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4620
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4621
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4622
    DPRINTF(("***** ERROR createFontWithFoundry failed ERROR *****\n" ));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4623
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4624
    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4625
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4626
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4627
     Display getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4628
			 family:'courier'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4629
			 weight:'medium'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4630
			  slant:'r'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4631
			spacing:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4632
		      pixelSize:nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4633
			   size:13
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4634
		       registry:'iso8859'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4635
		       encoding:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4636
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4637
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4638
    "new NT Version: 20.2.1997 / 22:33:29 / dq"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4639
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4640
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4641
primFontMetricsOf:fontId hdc:aDC intoArray:rawData
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4642
    "evaluate aBlock, passing a fonts metrics as arguments.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4643
     fill passed array as:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4644
      ascent     -> (data at:1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4645
      descent    -> (data at:2)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4646
      maxAscent  -> (data at:3)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4647
      maxDescent -> (data at:4)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4648
      minWidth   -> (data at:5)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4649
      maxWidth   -> (data at:6)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4650
      avgWidth   -> (data at:7).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4651
      minChar    -> (data at:8).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4652
      maxChar    -> (data at:9).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4653
      defaultChar-> (data at:10).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4654
      charSet    -> (data at:11).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4655
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4656
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4657
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4658
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4659
    if (__isExternalAddress(fontId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4660
     && __isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4661
     && __isArray(rawData)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4662
     && (__arraySize(rawData) >= 11)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4663
	SIZE size;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4664
	int avgWidth;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4665
	HGDIOBJ hFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4666
	HGDIOBJ prevFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4667
	TEXTMETRIC tmet;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4668
	static char *s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4669
	static int len;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4670
	OBJ t;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4671
	HANDLE hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4672
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4673
	hFont = _HGDIOBJVal(fontId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4674
	hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4675
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4676
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4677
	 * temporarily set this font in the tmpDC (root-) context
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4678
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4679
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4680
	prevFont = SelectObject(hDC, hFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4681
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4682
	GetTextMetricsW(hDC, &tmet);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4683
	if (len == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4684
	    len = strlen(s);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4685
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4686
#if 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4687
	GetTextExtentPoint32(hDC, s, len, &size);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4688
	avgWidth = (size.cx / (len / 2) + 1) / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4689
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4690
	avgWidth = tmet.tmAveCharWidth;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4691
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4692
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4693
	__ArrayInstPtr(rawData)->a_element[0] = __MKSMALLINT(tmet.tmAscent);        /* ascent     -> (data at:1) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4694
	__ArrayInstPtr(rawData)->a_element[1] = __MKSMALLINT(tmet.tmDescent);       /* descent    -> (data at:2) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4695
	__ArrayInstPtr(rawData)->a_element[2] = __MKSMALLINT(tmet.tmAscent);        /* maxAscent  -> (data at:3) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4696
	__ArrayInstPtr(rawData)->a_element[3] = __MKSMALLINT(tmet.tmDescent);       /* maxDescent -> (data at:4) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4697
	__ArrayInstPtr(rawData)->a_element[4] = __MKSMALLINT(avgWidth);             /* minWidth   -> (data at:5) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4698
	__ArrayInstPtr(rawData)->a_element[5] = __MKSMALLINT(tmet.tmMaxCharWidth);  /* maxWidth   -> (data at:6) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4699
	__ArrayInstPtr(rawData)->a_element[6] = __MKSMALLINT(avgWidth);             /* avgWidth   -> (data at:7) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4700
	__ArrayInstPtr(rawData)->a_element[7] = __MKSMALLINT(tmet.tmFirstChar);     /* min        -> (data at:8) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4701
	__ArrayInstPtr(rawData)->a_element[8] = __MKSMALLINT(tmet.tmLastChar);      /* max        -> (data at:9) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4702
	__ArrayInstPtr(rawData)->a_element[9] = __MKSMALLINT(tmet.tmDefaultChar);   /* default    -> (data at:10) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4703
#if 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4704
	t = __charSetSymbolFor(tmet.tmCharSet);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4705
	__ArrayInstPtr(rawData)->a_element[10]= t; __STORE(rawData, t);             /* charSet    -> (data at:11) */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4706
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4707
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4708
	DPRINTF(("textMetrics h=%x  avgAsc=%d avgDesc=%d minW=%d maxW=%d avgW=%d\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4709
		    hFont, tmet.tmAscent, tmet.tmDescent, avgWidth, tmet.tmMaxCharWidth,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4710
		    tmet.tmAveCharWidth));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4711
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4712
	SelectObject(hDC, prevFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4713
	RETURN (self);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4714
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4715
    RETURN (nil);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4716
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4717
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4718
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4719
releaseFont:aFontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4720
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4721
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4722
    if (__isExternalAddress(aFontId)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4723
	HGDIOBJ hFont = _HGDIOBJVal(aFontId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4724
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4725
	if (hFont) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4726
	   DPRINTF(("ReleaseFont: %x\n", hFont));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4727
	   DeleteObject(hFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4728
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4729
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4730
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4731
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4732
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4733
setFont:aFontId in:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4734
    "set font to be drawn in"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4735
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4736
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4737
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4738
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4739
     && __isExternalAddress(aFontId))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4740
    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4741
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4742
	HGDIOBJ prevFont, hFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4743
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4744
	hFont = _HGDIOBJVal(aFontId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4745
	prevFont = SelectObject(hDC, hFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4746
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4747
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4748
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4749
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4750
    self primitiveFailed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4751
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4752
    "Created: / 04-08-2006 / 12:32:53 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4753
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4754
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4755
widthOf:aString from:index1 to:index2 inFont:aFontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4756
   | gcId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4757
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4758
   gcId :=self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4759
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4760
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4761
    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4762
    int len, n, i1, i2, l;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4763
    OBJ cls;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4764
    int nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4765
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4766
    if (__bothSmallInteger(index1, index2)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4767
     && __isExternalAddress(aFontId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4768
     && __isExternalAddressLike(gcId)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4769
     && __isNonNilObject(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4770
	HGDIOBJ hFont,prevFont;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4771
	HANDLE hDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4772
	SIZE tsize;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4773
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4774
#ifndef PRE_22_FEP_2007
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4775
#       define N_QUICK_CHARS    1024
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4776
	unsigned short quickWchars[N_QUICK_CHARS];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4777
	unsigned short *wcharPtr;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4778
	int mustFree = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4779
	int i;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4780
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4781
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4782
	hFont = _HGDIOBJVal(aFontId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4783
	hDC = (HANDLE)(__externalAddressVal(gcId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4784
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4785
	prevFont = SelectObject(hDC, hFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4786
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4787
	i1 = __intVal(index1) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4788
	cls = __qClass(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4789
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4790
	if (i1 >= 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4791
	    i2 = __intVal(index2) - 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4792
	    if (i2 < i1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4793
		RETURN ( __MKSMALLINT( 0 ) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4794
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4795
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4796
	    cp = (char *) _stringVal(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4797
	    l = i2 - i1 + 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4798
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4799
	    if ((cls == @global(String)) || (cls == @global(Symbol))) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4800
		n = _stringSize(aString);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4801
    commonWidthChars:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4802
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4803
		    cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4804
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4805
#ifdef PRE_22_FEP_2007
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4806
		    GetTextExtentPoint32(hDC, cp, l, &tsize);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4807
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4808
		    if (l <= N_QUICK_CHARS) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4809
			wcharPtr = quickWchars;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4810
			mustFree = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4811
		    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4812
			wcharPtr = malloc(sizeof(short)*l);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4813
			if (! wcharPtr) RETURN (__MKSMALLINT(0));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4814
			mustFree = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4815
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4816
		    for (i=0; i<l; i++) wcharPtr[i] = ((unsigned char *)cp)[i];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4817
		    GetTextExtentPoint32W(hDC, wcharPtr, l, &tsize);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4818
		    if (mustFree) free(wcharPtr);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4819
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4820
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4821
#ifdef SUPERDEBUG
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4822
		    if (__debug__) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4823
			char buf[80];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4824
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4825
			GetTextFace(hDC,80,buf);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4826
			console_printf("font1 %x %s >%s< l=%d dx=%d\n",hFont,buf,cp,l,tsize.cx);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4827
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4828
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4829
		    SelectObject(hDC, prevFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4830
		    RETURN ( __MKSMALLINT(tsize.cx) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4831
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4832
		RETURN (__MKSMALLINT(0));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4833
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4834
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4835
	    nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4836
	    cp += nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4837
	    n = __byteArraySize(aString) - nInstBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4838
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4839
	    if (__isBytes(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4840
		goto commonWidthChars;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4841
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4842
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4843
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4844
	    if (__isWords(aString)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4845
		n = n / 2;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4846
		if (i2 < n) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4847
		    WIDECHAR *w_cp = (WIDECHAR *)cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4848
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4849
		    w_cp += i1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4850
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4851
		    GetTextExtentPoint32W(hDC, w_cp, l, &tsize);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4852
		    SelectObject(hDC, prevFont);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4853
		    RETURN ( __MKSMALLINT(tsize.cx) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4854
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4855
		RETURN (__MKSMALLINT(0));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4856
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4857
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4858
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4859
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4860
    self primitiveFailed.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4861
    ^ 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4862
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4863
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4864
widthOf:aString inFont:aFontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4865
    "return the width in pixels of a string in a specific font"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4866
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4867
    ^ self widthOf:aString from:1 to:(aString size) inFont:aFontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4868
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4869
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4870
!WinPrinterContext methodsFor:'initialization & release'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4871
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4872
createDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4873
    "Private - Create a device context for the receiver"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4874
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4875
    self gcId: printerInfo createDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4876
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4877
    "Created: / 27-07-2006 / 10:21:05 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4878
    "Modified: / 02-08-2006 / 17:30:47 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4879
    "Modified: / 10-10-2006 / 18:14:28 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4880
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4881
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4882
deleteDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4883
    "Private - Delete a device context for the receiver"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4884
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4885
    OperatingSystem deletePrinterDC: self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4886
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4887
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4888
destroy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4889
    "Destroy the GC."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4890
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4891
    |id|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4892
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4893
    id := self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4894
    id notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4895
	self gcId: nil.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4896
	self deleteDC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4897
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4898
"/    Lobby unregister:self.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4899
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4900
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4901
destroyGC:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4902
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4903
    if (__isExternalAddressLike(aDC)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4904
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4905
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4906
	DeleteDC(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4907
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4908
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4909
#ifdef CACHE_LAST_DC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4910
	if (lastGcData == gcData) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4911
	    _releaseDC(gcData);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4912
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4913
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4914
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4915
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4916
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4917
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4918
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4919
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4920
executor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4921
    |aCopy|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4922
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4923
    aCopy := WinWorkstation::PrinterDeviceContextHandle basicNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4924
    aCopy setDevice:self device id:nil gcId:self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4925
    ^ aCopy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4926
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4927
    "Created: / 16-04-2007 / 12:39:02 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4928
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4929
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4930
initialize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4931
    super initialize.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4932
"/    deviceForms := Registry new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4933
"/    deviceColors := Registry new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4934
    deviceFonts := CachingRegistry new cacheSize:10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4935
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4936
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4937
releaseDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4938
    "Private - Delete and clear the device context of the receiver."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4939
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4940
    self deleteDC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4941
"/    device close.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4942
    self gcId: nil.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4943
    self releaseDeviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4944
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4945
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4946
releaseDeviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4947
    deviceFonts isEmptyOrNil ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4948
	deviceFonts do:[:afont |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4949
	    afont releaseFromDevice.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4950
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4951
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4952
    deviceFonts := CachingRegistry new cacheSize:10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4953
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4954
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4955
!WinPrinterContext methodsFor:'non standard methods'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4956
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4957
stringWidthOf:aString at:index
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4958
    "Return the width of aString up to index
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4959
     when written using the current font; expand tabs out
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4960
     to 4 spaces for calculations"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4961
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4962
    |answer str size spaceWidth|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4963
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4964
    index <= 0 ifTrue:[ ^ 0 ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4965
    str := index >= aString size ifTrue:[ aString ] ifFalse:[ aString copyFrom:1 to:index ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4966
    true "self font isNil" ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4967
	"if font not set yet, calculate based on default font"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4968
	"/            extString := str asExternalString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4969
	size := Win32OperatingSystem::WinPointStructure new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4970
	(OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4971
	    getTextExtentPoint:self gcId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4972
	    string:str
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4973
	    size:size) ifFalse:[ ^ self error ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4974
	answer := size x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4975
"/        Transcript showCR: 'FROM PRIM ******* ', str, '   ',  answer printString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4976
"/        Transcript showCR: 'FROM DEVICE ***** ', str, '   ',(self font widthOf:str on:self device) printString.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4977
	#TODO.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4978
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4979
	answer := self font widthOf:str on:self device
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4980
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4981
    index > aString size ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4982
	spaceWidth := self font widthOf:Character space on:self device.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4983
	answer := answer + ((index - aString size) * spaceWidth)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4984
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4985
    ^ answer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4986
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4987
    "Created: / 03-08-2006 / 10:27:20 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4988
    "Modified: / 04-08-2006 / 12:27:26 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4989
    "Modified: / 10-10-2006 / 18:20:43 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4990
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4991
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4992
!WinPrinterContext methodsFor:'not supported yet'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4993
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4994
displayAdvanceLineFrom:point1 to:point2
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4995
    "draw a line"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4996
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4997
    self displayAdvanceLineFromX:(point1 x) y:(point1 y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4998
		      toX:(point2 x) y:(point2 y)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4999
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5000
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5001
displayAdvanceLineFromX:x0 y:y0 toX:x1 y:y1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5002
    "draw a line (with current paint-color); apply transformation if nonNil"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5003
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5004
    |pX0 pY0 pX1 pY1 easy fgId bgId|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5005
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5006
    self gcId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5007
	self initGC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5008
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5009
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5010
    self lineStyle == #doubleDashed ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5011
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5012
	 if bgPaint or paint is not a real color, we have to do it the hard way ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5013
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5014
	easy := true.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5015
	self paint isColor ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5016
	    easy := false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5017
	] ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5018
	    fgId := self paint colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5019
	    fgId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5020
		easy := false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5021
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5022
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5023
	self bgPaint isColor ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5024
	    easy := false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5025
	] ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5026
	    bgId := self bgPaint colorId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5027
	    bgId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5028
		easy := false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5029
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5030
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5031
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5032
	easy ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5033
	    ((self foreground ~~ self paint) or:[self background ~~ self bgPaint]) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5034
		self device setForeground:fgId background:bgId in:self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5035
		self foreground: self paint.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5036
		self background: self bgPaint.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5037
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5038
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5039
	    'DeviceGraphicsContext [warning]: cannot draw dashes with dithered colors' errorPrintCR
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5040
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5041
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5042
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5043
    self transformation notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5044
	pX0 := self transformation applyToX:x0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5045
	pY0 := self transformation applyToY:y0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5046
	pX1 := self transformation applyToX:x1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5047
	pY1 := self transformation applyToY:y1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5048
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5049
	pX0 := x0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5050
	pY0 := y0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5051
	pX1 := x1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5052
	pY1 := y1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5053
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5054
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5055
    pX0 := pX0 rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5056
    pY0 := pY0 rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5057
    pX1 := pX1 rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5058
    pY1 := pY1 rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5059
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5060
    self device displayAdvanceLineFromX:pX0 y:pY0 toX:pX1 y:pY1 in:self drawableId with:self gcId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5061
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5062
    "Modified: 10.1.1997 / 17:46:32 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5063
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5064
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5065
displayAdvanceLineFromX:x0 y:y0 toX:x1 y:y1 in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5066
    "draw a line. If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5067
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5068
    self getPenForMyContext.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5069
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5070
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5071
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5072
     && __bothSmallInteger(x0, y0)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5073
     && __bothSmallInteger(x1, y1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5074
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5075
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5076
	int __x1 = __intVal(x1), __y1 = __intVal(y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5077
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5078
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5079
/*      DPRINTF(("displayLine: %d/%d -> %d/%d\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5080
		    __intVal(x0), __intVal(y0),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5081
		    __x1, __y1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5082
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5083
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5084
/*        fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5085
 *        hPen = CreatePen(PS_SOLID, 1, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5086
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5087
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5088
	MoveToEx(hDC, __intVal(x0), __intVal(y0), NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5089
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5090
	LineTo(hDC, __x1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5091
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5092
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5093
	 * end-point ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5094
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5095
	LineTo(hDC, __x1+1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5096
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5097
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5098
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5099
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5100
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5101
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5102
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5103
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5104
gcForBitmap:aDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5105
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5106
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5107
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5108
    if (__isExternalAddress(aDrawableId)){
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5109
	BITMAP bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5110
	HBITMAP hBitmap = _HBITMAPVAL(aDrawableId);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5111
	HBITMAP memBM;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5112
	HANDLE compatibleDC, rootDC, hdcScreen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5113
   //     HANDLE printerDC = (HANDLE)(__externalAddressVal(__INST(gcId)));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5114
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5115
	if (! hBitmap) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5116
	    RETURN (nil);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5117
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5118
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5119
	if (GetObject(hBitmap, sizeof(bitmap), &bitmap)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5120
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5121
	    DDPRINTF(("bitmap info:%d\n", bitmap.bmBitsPixel));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5122
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5123
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5124
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5125
	    DPRINTF(("noinfo returned for bitmap\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5126
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5127
	    /* mhmh - can this happen ? */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5128
	    bitmap.bmBitsPixel = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5129
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5130
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5131
	gcData->hBitmap = hBitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5132
	gcData->bitmapColorBitCount = bitmap.bmBitsPixel;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5133
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5134
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5135
	rootDC  = CreateDC("DISPLAY", NULL, NULL, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5136
	compatibleDC = CreateCompatibleDC(rootDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5137
	SelectObject(compatibleDC, hBitmap);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5138
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5139
   //     hdcScreen= CreateDC("NULL", NULL, NULL, NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5140
   //       compatibleDC =  rootDC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5141
   //     compatibleDC = CreateCompatibleDC(printerDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5142
   //     compatibleDC = CreateCompatibleDC(0);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5143
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5144
   //     memBM = CreateCompatibleBitmap ( compatibleDC, bitmap.bmWidth, bitmap.bmHeight );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5145
   //     SelectObject ( compatibleDC, memBM );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5146
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5147
	RETURN (__MKEXTERNALADDRESS(compatibleDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5148
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5149
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5150
	RETURN ( __MKEXTERNALADDRESS(gcData) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5151
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5152
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5153
    RETURN (nil);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5154
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5155
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5156
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5157
getPenForMyContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5158
    "Get a pen for my context"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5159
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5160
    |maskOriginX maskOriginY gcId lineWidthObj lineStyleObj capStyleObj joinStyleObj maskObj |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5161
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5162
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5163
    self maskOrigin isNil ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5164
	maskOriginX := self maskOrigin x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5165
	maskOriginY := self maskOrigin y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5166
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5167
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5168
    		gcId := self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5169
	lineWidthObj := self lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5170
	lineStyleObj := self lineStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5171
	 capStyleObj := self capStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5172
	joinStyleObj := self joinStyle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5173
         maskObj := self mask.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5174
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5175
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5176
    HPEN hPen = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5177
    HPEN prevPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5178
    LOGBRUSH Brush;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5179
    COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5180
    HANDLE hDC = (HANDLE)(__externalAddressVal(gcId));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5181
    int lStyle, bkMode, hMask, maskOrgX, maskOrgY;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5182
    OBJ lineStyle, capStyle, joinStyle;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5183
    int style;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5184
    int lw;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5185
    int BK_TRANSPARENT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5186
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5187
    BK_TRANSPARENT = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5188
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5189
    lw= __intVal(lineWidthObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5190
/*    fgColor = __intVal(__INST(foreground)) & 0xffffff;     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5191
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5192
    fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5193
    lineStyle=lineStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5194
    capStyle=capStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5195
    joinStyle=joinStyleObj;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5196
    hMask= __intVal(maskObj);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5197
    maskOrgX=__intVal(maskOriginX);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5198
    maskOrgY=__intVal(maskOriginY);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5199
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5200
    if (lineStyle == @symbol(solid)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5201
	style = PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5202
    } else if (lineStyle == @symbol(dashed)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5203
	style= PS_DASH;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5204
    } else if (lineStyle == @symbol(dotted)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5205
	style= PS_DOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5206
    } else if (lineStyle == @symbol(dashDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5207
	style= PS_DASHDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5208
    } else if (lineStyle == @symbol(dashDotDot)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5209
	style= PS_DASHDOTDOT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5210
    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5211
	style= PS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5212
    lStyle &= ~PS_STYLE_MASK;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5213
    lStyle |= style;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5214
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5215
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5216
    if (capStyle == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5217
	style = PS_ENDCAP_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5218
    } else if (capStyle == @symbol(square)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5219
	style = PS_ENDCAP_SQUARE;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5220
    } else if (capStyle == @symbol(flat)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5221
	style = PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5222
    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5223
	style = PS_ENDCAP_FLAT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5224
    lStyle &= ~PS_ENDCAP_MASK;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5225
    lStyle |= style;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5226
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5227
    if (joinStyle == @symbol(bevel)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5228
	style = PS_JOIN_BEVEL;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5229
    } else if (joinStyle == @symbol(miter)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5230
	style = PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5231
    } else if (joinStyle == @symbol(round)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5232
	style = PS_JOIN_ROUND;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5233
    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5234
	style = PS_JOIN_MITER;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5235
    lStyle &= ~PS_JOIN_MASK;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5236
    lStyle |= style;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5237
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5238
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5239
    if (((lStyle & PS_STYLE_MASK) == PS_SOLID)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5240
     && (hMask == 0)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5241
     && (lw /* lineWidth */ <= 1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5242
	if (fgColor == 0 /* BlackPixel */ ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5243
	    hPen = GetStockObject(BLACK_PEN);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5244
	    prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5245
	    RETURN( __MKEXTERNALADDRESS(hPen) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5246
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5247
	if (fgColor == 1 /* WhitePixel */) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5248
	    hPen = GetStockObject(WHITE_PEN);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5249
	    prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5250
	    RETURN( __MKEXTERNALADDRESS(hPen) );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5251
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5252
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5253
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5254
    hPen = (HPEN) 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5255
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5256
    if (0 /* __isWinNT */) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5257
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5258
	if (lw == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5259
	    lw = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5260
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5261
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5262
	 * NT supports masked drawing with any lineStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5263
	 * and also non-solid lines with any lineWidth.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5264
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5265
	if (hMask) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5266
	    Brush.lbStyle = BS_PATTERN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5267
	    Brush.lbHatch = (DWORD)hMask;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5268
	    Brush.lbColor = fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5269
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5270
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5271
#ifndef PRE_07_APR_04
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5272
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5273
	    hPen = CreatePen((lStyle & PS_STYLE_MASK), lw, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5274
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5275
/*            RESPRINTF(("CreatePen %x %d(%d) %x %x\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5276
 *                       lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5277
 *                       lw, __INST(lineWidth),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5278
 *                       fgColor, hMask));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5279
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5280
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5281
	    SetBkMode(hDC, TRANSPARENT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5282
	    bkMode = BK_TRANSPARENT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5283
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5284
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5285
	    Brush.lbStyle = BS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5286
	    Brush.lbHatch = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5287
	    Brush.lbColor = fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5288
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5289
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5290
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5291
	if (! hPen)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5292
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5293
	    hPen = ExtCreatePen(PS_GEOMETRIC | lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5294
			    lw, /* lineWidth, */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5295
			    &Brush,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5296
			    0, 0);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5297
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5298
/*            RESPRINTF(("ExtCreatePen1 %x %d(%d) %x %x\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5299
 *                       lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5300
 *                       lw, __INST(lineWidth),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5301
 *                       fgColor, hMask));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5302
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5303
	    if (hMask) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5304
		SetBrushOrgEx(hDC, maskOrgX, maskOrgY, 0);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5305
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5306
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5307
    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5308
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5309
	 * W95 only supports masked drawing with SOLID lines
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5310
	 * also, we should use COSMETIC pens if possible
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5311
	 * with non-solid lineStyles.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5312
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5313
	if ((lStyle & PS_STYLE_MASK) == PS_SOLID) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5314
	    int ps = PS_GEOMETRIC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5315
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5316
	    if (hMask) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5317
		Brush.lbStyle = BS_PATTERN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5318
		Brush.lbHatch = (DWORD)hMask;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5319
		Brush.lbColor = fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5320
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5321
		Brush.lbStyle = BS_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5322
		Brush.lbHatch = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5323
		Brush.lbColor = fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5324
		if (lw /* lineWidth */ <= 1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5325
		    ps = PS_COSMETIC;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5326
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5327
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5328
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5329
	    hPen = ExtCreatePen(ps | lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5330
				lw, /* lineWidth */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5331
				&Brush,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5332
				0, 0);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5333
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5334
/*            RESPRINTF(("ExtCreatePen1 %x %d %x %x\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5335
 *                           lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5336
 *                           lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5337
 *                           fgColor, hMask));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5338
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5339
	    if (hMask) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5340
		SetBrushOrgEx(hDC, maskOrgX, maskOrgY, 0);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5341
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5342
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5343
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5344
	    if (lw == 1) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5345
		lw = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5346
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5347
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5348
	    /*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5349
	     * dashes only supported with lineWidth 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5350
	     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5351
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5352
	    hPen = CreatePen((lStyle & PS_STYLE_MASK),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5353
			     lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5354
			     fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5355
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5356
/*            RESPRINTF(("CreatePen %x %d %x\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5357
 *                               (lStyle & PS_STYLE_MASK),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5358
 *                               lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5359
 *                               fgColor));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5360
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5361
	    //
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5362
	    // CG: wrong; must set to opaque, if doubleDashed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5363
	    //
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5364
	    SetBkMode(hDC, TRANSPARENT);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5365
	    bkMode = BK_TRANSPARENT;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5366
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5367
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5368
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5369
    prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5370
    RETURN (__MKEXTERNALADDRESS(hPen));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5371
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5372
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5373
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5374
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5375
xprimDrawBits:imageBits bitsPerPixel:bitsPerPixel depth:imageDepth padding:padd width:imageWidth height:imageHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5376
				  x:srcx y:srcy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5377
			       into:ignoredDrawableId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5378
				  x:dstx y:dsty
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5379
			      width:w height:h
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5380
			       with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5381
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5382
    "since XPutImage may allocate huge amount of stack space
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5383
     (some implementations use alloca), this must run with unlimited stack."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5384
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5385
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5386
    unsigned char fastBits[10000];
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5387
    unsigned char *b_bits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5388
    unsigned char *allocatedBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5389
    unsigned char *__imageBits = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5390
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5391
    if (__isByteArray(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5392
	__imageBits = __ByteArrayInstPtr(imageBits)->ba_element;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5393
    } else if (__isExternalBytesLike(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5394
	__imageBits = (unsigned char *)(__externalBytesAddress(imageBits));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5395
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5396
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5397
    if (/* ISCONNECTED
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5398
     && */  __isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5399
     && __bothSmallInteger(srcx, srcy)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5400
     && __bothSmallInteger(dstx, dsty)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5401
     && __bothSmallInteger(w, h)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5402
     && __bothSmallInteger(imageWidth, imageHeight)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5403
     && __bothSmallInteger(imageDepth, bitsPerPixel)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5404
     && __isSmallInteger(padd)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5405
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5406
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5407
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5408
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5409
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5410
	  BITMAPINFOHEADER bmiHeader;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5411
	  DWORD r;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5412
	  DWORD g;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5413
	  DWORD b;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5414
	} bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5415
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5416
	if (__intVal(padd) != WIN32PADDING) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5417
	    int row, col;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5418
	    unsigned char *cp;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5419
	    unsigned char *pBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5420
	    int b_width, b_height, bytesPerRowST, bytesPerRowWN, padding, nBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5421
	    int bi = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5422
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5423
	    b_width = __intVal(w);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5424
	    b_height = __intVal(h);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5425
	    bytesPerRowST = (b_width * bi + (__intVal(padd)-1)) / __intVal(padd);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5426
	    bytesPerRowWN = (b_width * bi + (WIN32PADDING-1)) / WIN32PADDING * (WIN32PADDING/8);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5427
	    padding = bytesPerRowWN - bytesPerRowST;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5428
	    nBytes = b_height * bytesPerRowWN;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5429
	    /*console_printf("padd %d bs %d bw %d p %d\n",__intVal(padd),bytesPerRowST,bytesPerRowWN,padding);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5430
	    if (padding) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5431
		if (nBytes < sizeof(fastBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5432
		    cp = b_bits = fastBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5433
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5434
		    cp = b_bits = allocatedBits = (unsigned char *) malloc(nBytes);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5435
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5436
		if (cp) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5437
		    pBits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5438
		    for (row = b_height; row; row--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5439
			for (col = bytesPerRowST; col; col--) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5440
			    *cp++ = *pBits++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5441
			}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5442
			cp += padding;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5443
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5444
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5445
		    goto fail;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5446
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5447
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5448
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5449
	if (b_bits == 0) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5450
	    b_bits = __imageBits;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5451
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5452
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5453
	bitmap.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5454
	bitmap.bmiHeader.biPlanes = 1;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5455
	if (__intVal(imageDepth) == 24) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5456
	    /*bitmap.bmiHeader.biCompression = BI_BITFIELDS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5457
	    bitmap.r = 0xff0000;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5458
	    bitmap.g = 0x00ff00;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5459
	    bitmap.b = 0x0000ff;*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5460
	    bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5461
	} else if (__intVal(imageDepth) == 16) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5462
	    /*bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5463
	    bitmap.bmiHeader.biCompression = BI_BITFIELDS;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5464
	    bitmap.b = 0x001f;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5465
	    bitmap.g = 0x07e0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5466
	    bitmap.r = 0xf800;*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5467
	    bitmap.b = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5468
	    bitmap.g = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5469
	    bitmap.r = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5470
	    bitmap.bmiHeader.biCompression = BI_RGB;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5471
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5472
	bitmap.bmiHeader.biSizeImage = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5473
	bitmap.bmiHeader.biXPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5474
	bitmap.bmiHeader.biYPelsPerMeter = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5475
	bitmap.bmiHeader.biClrUsed = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5476
	bitmap.bmiHeader.biClrImportant = 0;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5477
	bitmap.bmiHeader.biWidth = __intVal(imageWidth);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5478
	bitmap.bmiHeader.biHeight = -(__intVal(imageHeight));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5479
	bitmap.bmiHeader.biBitCount = __intVal(bitsPerPixel);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5480
	/*console_printf("drawBits depth:%d bitsPerPixel:%d IW%d W:%d H:%d\n",__intVal(imageDepth),bitmap.bmiHeader.biBitCount,bitmap.bmiHeader.biWidth,__intVal(w),bitmap.bmiHeader.biHeight);*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5481
	SetDIBitsToDevice(hDC,__intVal(dstx),__intVal(dsty),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5482
			      __intVal(w), __intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5483
			      __intVal(srcx), __intVal(srcy),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5484
			      0,__intVal(h),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5485
			      (void *)b_bits,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5486
			      (BITMAPINFO*)&bitmap,DIB_RGB_COLORS);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5487
	if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5488
	    free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5489
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5490
	RETURN ( true );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5491
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5492
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5493
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5494
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5495
    PRINTF(("create temp bitmap FAILED!!!\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5496
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5497
    if (allocatedBits) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5498
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5499
	PRINTF(("freeing up temp bitmap bits ...\n"));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5500
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5501
	free(allocatedBits);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5502
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5503
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5504
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5505
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5506
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5507
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5508
xxxdisplayLineFromX:x0 y:y0 toX:x1 y:y1 in:ignoredDrawableId with:aDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5509
    "draw a line. If the coordinates are not integers, an error is triggered."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5510
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5511
    |penHandle|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5512
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5513
    penHandle := self getPenForMyContext.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5514
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5515
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5516
    if (__isExternalAddressLike(aDC)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5517
     && __isExternalAddressLike(penHandle)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5518
     && __bothSmallInteger(x0, y0)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5519
     && __bothSmallInteger(x1, y1)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5520
	HANDLE hDC = (HANDLE)(__externalAddressVal(aDC));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5521
	HANDLE hPen = (HANDLE)(__externalAddressVal(penHandle));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5522
	COLORREF fgColor;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5523
	HANDLE prevPen;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5524
	int __x1 = __intVal(x1), __y1 = __intVal(y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5525
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5526
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5527
/*      DPRINTF(("displayLine: %d/%d -> %d/%d\n",
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5528
		    __intVal(x0), __intVal(y0),
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5529
		    __x1, __y1));
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5530
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5531
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5532
/*        fgColor = GetTextColor(hDC);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5533
 *        hPen = CreatePen(PS_SOLID, 1, fgColor);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5534
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5535
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5536
	prevPen = SelectObject(hDC, hPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5537
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5538
	MoveToEx(hDC, __intVal(x0), __intVal(y0), NULL);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5539
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5540
	LineTo(hDC, __x1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5541
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5542
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5543
	 * end-point ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5544
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5545
	LineTo(hDC, __x1+1, __y1);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5546
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5547
	SelectObject(hDC, prevPen);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5548
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5549
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5550
	RETURN ( self );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5551
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5552
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5553
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5554
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5555
!WinPrinterContext methodsFor:'printing process'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5556
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5557
endPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5558
    "Informs device that we are finished writing to a page."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5559
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5560
    (OperatingSystem endPage:self gcId) > 0 ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5561
	self error
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5562
    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5563
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5564
    "Created: / 27-07-2006 / 18:20:48 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5565
    "Modified: / 01-08-2006 / 16:01:34 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5566
    "Modified: / 10-10-2006 / 18:14:44 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5567
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5568
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5569
endPrintJobWithoutRelease
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5570
    "End the print job.  Everything drawn between startPrintJob
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5571
     and endPrintJob will become one entry in the print queue."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5572
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5573
    |result|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5574
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5575
    self endPage.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5576
    result := OperatingSystem endDoc:self gcId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5577
    jobid := nil.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5578
    result >= 0 ifFalse:[ self error ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5579
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5580
    "Created: / 27-07-2006 / 18:21:04 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5581
    "Modified: / 01-08-2006 / 16:01:38 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5582
    "Modified: / 10-10-2006 / 18:50:43 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5583
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5584
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5585
getSupportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5586
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5587
    | retVal info |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5588
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5589
    info := (self class getPrinterInformationString: self name) asUppercase.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5590
    (info includesSubString: ',PSCRIPT,')
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5591
	ifTrue: [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5592
	    retVal := self class postScriptBlackWhite not.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5593
"/            retVal := (DAPASX::DapasSystemInfo getYesNoInfoApp: 'Printer' profile: 'PostScriptBlackWhite') not.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5594
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5595
	ifFalse: [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5596
	    retVal := (info includesSubString: 'PDF')
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5597
		ifTrue: [true]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5598
		ifFalse: [self numberOfColorBitsPerPixel > 1].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5599
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5600
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5601
    ^retVal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5602
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5603
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5604
startPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5605
    "Starts a page."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5606
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5607
    (OperatingSystem startPage:self gcId) > 0 ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5608
	^ self error
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5609
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5610
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5611
    "Created: / 27-07-2006 / 18:25:55 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5612
    "Modified: / 28-07-2006 / 18:19:04 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5613
    "Modified: / 10-10-2006 / 18:19:02 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5614
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5615
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5616
startPrintJob:aString fileName:aFileName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5617
    "Start a print job, using aString as the job title; everything
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5618
     drawn between startPrintJob and endPrintJob will become
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5619
     one entry in the print queue."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5620
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5621
    |docInfoStruct nameAddress title fileNameAddress|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5622
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5623
    self gcId isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5624
	self buildPrinter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5625
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5626
    abort := false.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5627
    title := aString ? 'Smalltalk/X'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5628
    nameAddress := title asExternalBytes unprotectFromGC.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5629
    aFileName isNil ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5630
	fileNameAddress := aFileName pathName asExternalBytes unprotectFromGC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5631
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5632
    docInfoStruct := Win32OperatingSystem::DocInfoStructure new.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5633
    docInfoStruct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5634
	cbSize:docInfoStruct sizeInBytes;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5635
	lpszDocName:nameAddress address.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5636
    fileNameAddress isNil ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5637
	docInfoStruct lpszOutput:fileNameAddress address
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5638
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5639
    jobid := OperatingSystem startDoc:self gcId docInfo:docInfoStruct.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5640
    jobid > 0 ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5641
	jobid = -1 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5642
	    abort := true.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5643
	    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5644
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5645
"/        ^ self error
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5646
	OpenError raiseErrorString:'Cannot create printer job'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5647
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5648
    self startPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5649
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5650
    "Created: / 27-07-2006 / 18:19:31 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5651
    "Modified: / 03-08-2006 / 15:11:19 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5652
    "Modified: / 10-10-2006 / 18:20:01 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5653
    "Modified: / 07-04-2011 / 12:03:50 / sr"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5654
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5655
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5656
!WinPrinterContext methodsFor:'queries'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5657
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5658
hasGrayscales
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5659
    "return true, if this workstation supports grayscales
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5660
     (also true for color displays)"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5661
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5662
    ^ true
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5663
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5664
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5665
isOpen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5666
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5667
    ^ self gcId notNil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5668
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5669
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5670
isPersistentInSnapshot
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5671
    "return true, if resources on this device are to be made
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5672
     persistent in a snapshot image."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5673
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5674
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5675
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5676
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5677
supportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5678
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5679
    supportsColor isNil ifTrue:[supportsColor := self getSupportsColor].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5680
    ^supportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5681
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5682
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5683
supportsGraphics
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5684
    ^(OperatingSystem getDeviceCaps: self gcId index: 2 "Technology") ~= 4
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5685
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5686
    "Created: / 03-08-2006 / 10:07:43 / fm"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5687
    "Modified: / 16-04-2007 / 12:44:03 / cg"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5688
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5689
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5690
supportsVariableHeightFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5691
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5692
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5693
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5694
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5695
!WinPrinterContext methodsFor:'registration'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5696
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5697
registerFont:aFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5698
    deviceFonts register:aFont.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5699
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5700
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5701
unregisterFont:aFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5702
    deviceFonts unregister:aFont.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5703
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5704
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5705
!WinPrinterContext::WinPrinterGraphicContext class methodsFor:'documentation'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5706
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5707
documentation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5708
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5709
    The class is simular to the PSGraphicsContext. It implements a
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5710
    'what you see is what you get' interface - all is scaled dependent
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5711
    on the current screen resolution
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5712
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5713
    supports margin, clipping ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5714
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5715
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5716
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5717
examples
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5718
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5719
										[exBegin]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5720
    |gc font|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5721
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5722
    gc := WinPrinterContext openGraphicContext.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5723
    gc isNil ifTrue:[^ self ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5724
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5725
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5726
	gc startPrintJob:'Test'.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5727
	gc paint:(Color black).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5728
	gc displayLineFromX:10 y:40 toX:100 y:40.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5729
	font := (Font family:'helvetica' face:'roman' style:'bold' size:16) onDevice:(gc device).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5730
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5731
	gc font:font.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5732
	gc paint:(Color red).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5733
	gc displayString:'hallo' x:10 y:(40 + font ascent).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5734
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5735
	gc paint:(Color black).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5736
	gc displayLineFromX:10 y:(40 + font height) toX:100 y:(40 + font height).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5737
    ] ensure:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5738
	gc close.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5739
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5740
										[exEnd]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5741
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5742
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5743
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5744
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5745
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'accessing dimensions'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5746
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5747
bottomMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5748
    "return the papers bottom margin measured in pixels"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5749
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5750
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5751
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5752
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5753
leftMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5754
    "return the papers left margin measured in pixels"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5755
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5756
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5757
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5758
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5759
rightMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5760
    "return the papers right margin measured in pixels"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5761
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5762
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5763
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5764
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5765
topMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5766
    "return the papers top margin measured in pixels"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5767
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5768
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5769
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5770
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5771
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'accessing-hooks'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5772
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5773
pageCounter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5774
    "answer the current page number"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5775
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5776
    pageCounter ~~ 0 ifTrue:[^ pageCounter].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5777
    ^ 1
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5778
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5779
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5780
pageNumberFormat:aFormatString
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5781
    "set the pageNumber format - the default is 'page %1'"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5782
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5783
    pageNumberFormat := aFormatString ? ''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5784
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5785
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5786
printPageNumbers:aBoolean
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5787
    "enable/disable printing of page numbers - the default is on"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5788
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5789
    printPageNumbers := aBoolean.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5790
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5791
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5792
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'accessing-transformation'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5793
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5794
clippingRectangle:aRectangle
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5795
    |tranlate extent lft rgt top bot|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5796
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5797
    tranlate := self translation negated asPoint.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5798
    extent   := self extent.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5799
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5800
    lft := tranlate x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5801
    top := tranlate y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5802
    rgt := lft + extent x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5803
    bot := top + extent y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5804
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5805
    aRectangle notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5806
	lft := lft max:aRectangle left.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5807
	top := top max:aRectangle top.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5808
	rgt := rgt min:aRectangle right.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5809
	bot := bot min:aRectangle bottom.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5810
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5811
    super clippingRectangle:(Rectangle left:lft top:top right:rgt bottom:bot).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5812
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5813
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5814
scale
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5815
    "answer the scale excluding the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5816
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5817
    ^ super scale / fontScale
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5818
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5819
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5820
scale:aScale
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5821
    "set the scale and add the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5822
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5823
    super scale:(fontScale * (aScale ? 1.0)).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5824
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5825
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5826
transformation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5827
    "answer the transformation excluding the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5828
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5829
    ^ WindowingTransformation scale:(self scale)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5830
			translation:(self translation).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5831
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5832
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5833
transformation:aTransformation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5834
    "set the transformation and add the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5835
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5836
    |s t|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5837
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5838
    aTransformation notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5839
	s := aTransformation scale.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5840
	t := aTransformation translation.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5841
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5842
    self scale:s.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5843
    self translation:t.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5844
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5845
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5846
translateBy:aTranslation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5847
    "set the translation and add the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5848
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5849
    aTranslation isNil ifTrue:[^ self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5850
    self translation:( self translation + (self scale * aTranslation)).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5851
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5852
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5853
translation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5854
    "answer the translation excluding the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5855
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5856
    |margin trans|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5857
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5858
    margin := Point x:(self leftMargin) y:(self topMargin).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5859
    trans  := (super translation / fontScale) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5860
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5861
    ^ trans - margin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5862
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5863
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5864
translation:aTranslation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5865
    "set the translation and add the fontScale factor"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5866
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5867
    |trans|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5868
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5869
    trans := Point x:(self leftMargin) y:(self topMargin).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5870
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5871
    aTranslation notNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5872
	trans := trans + aTranslation.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5873
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5874
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5875
    super translation:((trans * fontScale) rounded).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5876
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5877
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5878
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'drawing strings'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5879
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5880
displayOpaqueString:aString from:index1 to:index2 x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5881
    self displayString:aString from:index1 to:index2 x:x y:y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5882
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5883
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5884
displayOpaqueString:aString x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5885
    |end|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5886
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5887
    end := aString size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5888
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5889
    end ~~ 0 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5890
	self displayOpaqueString:aString from:1 to:end x:x y:y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5891
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5892
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5893
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5894
displayString:aString from:index1 to:index2 x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5895
    "setup the special scale for strings before drawing"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5896
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5897
    |tscale fscale yFont xFont|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5898
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5899
    index2 < index1 ifTrue:[^ self].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5900
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5901
    self transformation isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5902
	self initTransformation.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5903
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5904
    tscale := self transformation scale.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5905
    fscale := tscale / fontScale.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5906
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5907
    xFont := x * fontScale x.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5908
    yFont := (y - self font ascent) * fontScale y.    "/ MM_TEXT - Ursprung liegt oben links
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5909
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5910
    self transformation scale:fscale.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5911
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5912
    super displayString:aString from:index1 to:index2
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5913
		x:xFont truncated
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5914
		y:yFont truncated.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5915
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5916
    self transformation scale:tscale.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5917
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5918
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5919
displayString:aString x:x y:y
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5920
    |end|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5921
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5922
    end := aString size.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5923
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5924
    end ~~ 0 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5925
	self displayString:aString from:1 to:end x:x y:y.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5926
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5927
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5928
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5929
displayString:aString x:x y:y angle:drawAngle opaque:opaque
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5930
    "angles other than 0 is not yet supported"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5931
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5932
    |angle|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5933
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5934
    angle := drawAngle.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5935
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5936
    angle >= 360 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5937
	angle := angle - (((angle // 360)) * 360)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5938
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5939
	angle < 0 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5940
	    angle := angle - (((angle // 360)) * 360).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5941
	    angle := angle + 360.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5942
	    angle >= 360 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5943
		angle := angle - (((angle // 360)) * 360)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5944
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5945
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5946
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5947
    angle == 0 ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5948
	super displayString:aString x:x y:y angle:drawAngle opaque:opaque.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5949
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5950
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5951
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5952
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'font stuff'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5953
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5954
fontMetricsOf:fontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5955
    "after retrieving the metrics, we have to scale the information"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5956
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5957
    |metrics|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5958
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5959
    metrics := super fontMetricsOf:fontId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5960
    metrics isNil ifTrue:[^ nil ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5961
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5962
    metrics ascent:((metrics ascent / fontScale y) rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5963
	    descent:((metrics descent / fontScale y) rounded + 1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5964
	    maxAscent:((metrics maxAscent / fontScale y) rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5965
	    maxDescent:((metrics maxDescent / fontScale y) rounded + 1)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5966
	    minWidth:((metrics minWidth / fontScale x) rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5967
	    maxWidth:((metrics maxWidth / fontScale x) rounded)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5968
	    avgWidth:((metrics averageWidth / fontScale x) rounded).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5969
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5970
    ^ metrics
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5971
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5972
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5973
getFontWithFoundry:foundry family:family weight:weight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5974
	      slant:slant spacing:spc pixelSize:pixelSize size:pointSize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5975
	      registry:registry encoding:encoding
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5976
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5977
    "compute the pixels dependent on the Screen current resolution"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5978
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5979
    |psize|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5980
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5981
    psize := pixelSize.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5982
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5983
    psize isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5984
	psize := (pointSize * (self getLogicalPixelSizeY) / (Screen current getLogicalPixelSizeY)) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5985
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5986
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5987
    ^ super getFontWithFoundry:foundry family:family weight:weight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5988
	      slant:slant spacing:spc pixelSize:psize size:pointSize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5989
	      registry:registry encoding:encoding
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5990
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5991
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5992
titleFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5993
    "answer the font used for displaying page numbers..."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5994
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5995
    titleFont isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5996
	titleFont := Font family:'helvetica' face:'medium' style:'roman' size:10.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5997
	titleFont := titleFont onDevice:(self device).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5998
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5999
    ^ titleFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6000
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6001
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6002
titleFont:aFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6003
    "set the font used for displaying page numbers..."
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6004
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6005
    (aFont notNil and:[aFont ~= titleFont]) ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6006
	titleFont := aFont onDevice:(self device).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6007
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6008
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6009
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6010
widthOf:aString from:index1 to:index2 inFont:aFontId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6011
    "after retrieving the width, we have to scale the width"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6012
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6013
    |w|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6014
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6015
    w := super widthOf:aString from:index1 to:index2 inFont:aFontId.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6016
    w := (w / fontScale x) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6017
    ^ w
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6018
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6019
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6020
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'initialization & release'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6021
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6022
close
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6023
    "compatible with PSGraphicsContext"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6024
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6025
    self endPrintJob.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6026
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6027
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6028
initExtent
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6029
    "scale the extent"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6030
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6031
    fontScale := self resolution / Screen current resolution.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6032
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6033
    width  := (self printerWidthArea / fontScale x) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6034
    width  := width - self leftMargin - self rightMargin.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6035
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6036
    height := (self printerHeightArea / fontScale y) rounded.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6037
    height := height - self topMargin - self bottomMargin.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6038
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6039
    self initTransformation.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6040
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6041
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6042
initTransformation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6043
    |margin|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6044
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6045
    self transformation isNil ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6046
	margin := Point x:(self leftMargin) y:(self topMargin).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6047
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6048
	self transformation: (WindowingTransformation scale:fontScale
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6049
					    translation:(margin * fontScale)).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6050
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6051
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6052
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6053
initialize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6054
    super initialize.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6055
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6056
    pageCounter    := 0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6057
    needsEndOfPage := false.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6058
    printPageNumbers := true.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6059
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6060
    Language == #de ifTrue:[ pageNumberFormat := 'Seite %1' ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6061
		   ifFalse:[ pageNumberFormat := 'page %1'  ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6062
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6063
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6064
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'printing process'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6065
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6066
displayTitleDo:aNoneArgAction
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6067
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6068
    |oldClip oldTrans oldFont|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6069
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6070
    oldClip := gc clipingRectangleOrNil.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6071
    oldClip notNil ifTrue:[ self deviceClippingRectangle:nil ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6072
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6073
    oldTrans := self translation.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6074
    oldFont  := self font.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6075
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6076
    self  font:(self titleFont).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6077
    self  translation:0.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6078
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6079
    aNoneArgAction value.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6080
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6081
    self translation:oldTrans.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6082
    oldFont notNil ifTrue:[ self font:oldFont ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6083
    oldClip notNil ifTrue:[ self deviceClippingRectangle:oldClip ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6084
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6085
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6086
endPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6087
    "ends the current page
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6088
     if the current page is already closed by endPage, the request will be ignored"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6089
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6090
    |s|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6091
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6092
    needsEndOfPage ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6093
	^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6094
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6095
    needsEndOfPage := false.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6096
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6097
    printPageNumbers == true ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6098
	self displayTitleDo:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6099
	    s := pageNumberFormat bindWith:pageCounter.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6101
	    self displayString:s
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6102
			     x:(self extent x - (self font widthOf:s))
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6103
			     y:(self extent y + (self font ascent)).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6104
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6105
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6106
    super endPage.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6107
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6108
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6109
startPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6110
    "starts a new page
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6111
     if the current page is not closed by endPage, a endPage is forward to the device"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6112
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6113
    needsEndOfPage ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6114
	self endPage.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6115
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6116
    super startPage.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6117
    needsEndOfPage := true.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6118
    pageCounter := pageCounter + 1.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6119
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6120
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6121
!WinPrinterContext::WinPrinterGraphicContext methodsFor:'queries'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6122
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6123
pixelPerInch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6124
    ^ Point x:(self pixelsPerInchOfScreenWidth)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6125
	    y:(self pixelsPerInchOfScreenHeight).
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6126
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6127
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6128
resolution
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6129
    ^ self pixelPerInch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6130
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6131
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6132
!WinPrinterContext class methodsFor:'documentation'!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6133
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6134
version
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6135
    ^ '$Header: /cvs/stx/stx/libview2/WinPrinterContext.st,v 1.44 2013/07/04 10:57:17 mb Exp $'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6136
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6137
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6138
version_CVS
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6139
    ^ '$Header: /cvs/stx/stx/libview2/WinPrinterContext.st,v 1.44 2013/07/04 10:57:17 mb Exp $'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6140
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6141