WinPrinterContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 19 Sep 2016 09:22:14 +0100
branchjv
changeset 3748 7524cb18917f
parent 3722 6d604bcf36f3
parent 3745 fcabc71e2930
child 3808 339e33122c87
permissions -rw-r--r--
Merge
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
3528
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
    14
"{ NameSpace: Smalltalk }"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
    15
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    16
PrinterContext subclass:#WinPrinterContext
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
    17
	instanceVariableNames:'deviceFonts hatch supportsColor title'
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    18
	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
    19
	poolDictionaries:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    20
	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
    21
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    22
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    23
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
    24
	instanceVariableNames:'fontScale printPageNumbers pageNumberFormat pageCounter
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
    25
		needsEndOfPage titleFont width height'
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    26
	classVariableNames:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    27
	poolDictionaries:''
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    28
	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
    29
!
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
!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
    32
%{
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 INT
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 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
    35
#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
    36
#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
    37
#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
    38
#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
    39
#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
    40
#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
    41
#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
    42
#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
    43
#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
    44
/* #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
    45
#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
    46
#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
    47
#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
    48
#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
    49
#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
    50
#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
    51
#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
    52
#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
    53
#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
    54
#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
    55
#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
    56
#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
    57
#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
    58
#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
    59
#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
    60
#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
    61
#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
    62
#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
    63
#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
    64
#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
    65
#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
    66
#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
    67
#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
    68
#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
    69
#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
    70
#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
    71
#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
    72
#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
    73
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    74
#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
    75
#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
    76
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
    77
#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
    78
# 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
    79
# 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
    80
# 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
    81
# 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
    82
# 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
    83
# 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
    84
# 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
    85
# 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
    86
# 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
    87
# 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
    88
# 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
    89
# 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
    90
# 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
    91
# 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
    92
# 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
    93
# 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
    94
#else
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 _USERENTRY /**/
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 NOATOM
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 NOGDICAPMASKS
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 NOMETAFILE
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 NOMINMAX
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 NOOPENFILE
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 NOSOUND
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 NOWH
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 NOCOMM
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 NOKANJI
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 NOCRYPT
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   106
# 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
   107
# 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
   108
# 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
   109
# 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
   110
#endif
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
#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
   113
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   114
#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
   115
# 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
   116
# 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
   117
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   118
#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
   119
# 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
   120
# 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
   121
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   122
#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
   123
# 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
   124
# 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
   125
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   126
#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
   127
# 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
   128
# 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
   129
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   130
#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
   131
# 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
   132
# 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
   133
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   134
# 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
   135
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   136
#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
   137
# 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
   138
# 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
   139
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   140
#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
   141
# 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
   142
# 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
   143
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   144
#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
   145
# 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
   146
# 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
   147
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   148
#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
   149
# 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
   150
# 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
   151
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   152
# 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
   153
#  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
   154
#  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
   155
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   156
# 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
   157
#  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
   158
#  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
   159
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   160
# 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
   161
#  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
   162
#  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
   163
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   164
# 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
   165
#  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
   166
#  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
   167
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   168
# 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
   169
#  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
   170
#  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
   171
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   172
# 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
   173
#  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
   174
#  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
   175
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   176
# 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
   177
#  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
   178
#  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
   179
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   180
# 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
   181
#  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
   182
#  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
   183
# endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   184
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 INT
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 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
   187
#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
   188
#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
   189
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
 * 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
   192
 */
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 _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
   194
#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
   195
#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
   196
#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
   197
#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
   198
#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
   199
#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
   200
#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
   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 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
   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
#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
   205
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   206
#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
   207
# 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
   208
# 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
   209
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   210
# 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
   211
# 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
   212
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   213
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   214
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
   215
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
   216
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
/* 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
   218
#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
   219
# 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
   220
#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
   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
! !
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
!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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   227
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   228
 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
   229
	      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
   230
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   231
 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
   232
 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
   233
 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
   234
 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
   235
 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
   236
 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
   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
!
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
documentation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   241
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   242
    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
   243
    (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
   244
    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
   245
    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
   246
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   247
    [author:]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   248
	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
   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
! !
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
!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
   253
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   254
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
   255
    | 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
   256
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   257
    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
   258
    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
   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
    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
   261
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 := printerContext.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   263
"/    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
   264
"/    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
   265
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 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
   267
    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
   268
    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
   269
    ^printerContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   270
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   271
    "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
   272
    "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
   273
    "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
   274
!
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
newPrinter
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
    | 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
   279
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   280
    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
   281
    printerInfo isNil ifTrue:[^self].
3528
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
   282
    printer := self fromPrinterInfo: printerInfo.
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   283
    ^ printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   284
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   285
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   286
openGraphicContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   287
    ^ 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
   288
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   289
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   290
openGraphicContextWithoutDialog:withoutDialog
3528
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
   291
    ^ self openGraphicContextWithoutDialog:withoutDialog jobName:nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
   292
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
   293
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
   294
openGraphicContextWithoutDialog:withoutDialog jobName:jobName
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   295
    |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
   296
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   297
    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
   298
    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
   299
    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
   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
    gc notNil ifTrue:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
   302
	gc startPrintJob:jobName
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   303
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   304
    ^ gc
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   305
! !
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
!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
   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
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
   310
    " 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
   311
      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
   312
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   313
    |h|
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
    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
   316
    ^ OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   317
	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
   318
	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
   319
	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
   320
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   321
    "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
   322
    "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
   323
    "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
   324
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   325
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   326
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
   327
	" 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
   328
	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
   329
	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
   330
    | 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
   331
    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
   332
    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
   333
	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
   334
	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
   335
	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
   336
	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
   337
    ^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
   338
	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
   339
	ifFalse: ['']
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   342
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
   343
    "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
   344
     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
   345
     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
   346
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   347
    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
   348
    ^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
   349
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   350
    "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
   351
    "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
   352
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   356
    "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
   357
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   358
    ^ 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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   361
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
   362
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   363
    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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   366
!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
   367
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   368
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
   369
    "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
   370
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   371
    | 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
   372
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   373
    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
   374
    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
   375
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   376
    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
   377
    [
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 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
   379
	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
   380
	pairOfPointsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   381
	    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
   382
		 |pairOfPoints|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   383
		 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
   384
		 printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   385
		    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
   386
		    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
   387
		    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
   388
		    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
   389
		    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
   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
		    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
   392
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   393
	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
   394
    ] 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
   395
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
     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
   398
	(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
   399
	       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
   400
	       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
   401
	       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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   405
    "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
   406
    "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
   407
    "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
   408
! !
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
!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
   411
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   412
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
   413
    ^ 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
   414
	    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
   415
!
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
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
   418
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   419
    "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
   420
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   421
    | 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
   422
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   423
    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
   424
    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
   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
    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
   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
    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
   429
    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
   430
    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
   431
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   432
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   433
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   434
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
   435
    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
   436
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   437
    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
   438
    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
   439
    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
   440
    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
   441
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   442
    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
   443
    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
   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
].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   446
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   447
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
   448
    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
   449
    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
   450
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   451
    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
   452
    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
   453
    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
   454
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   455
    '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
   456
    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
   457
    '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
   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
    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
   460
    '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
   461
].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   462
"
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   465
!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
   466
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   467
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
   468
    "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
   469
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   470
    | 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
   471
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   472
    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
   473
    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
   474
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 := 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
   476
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   477
	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
   478
	arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   479
	    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
   480
		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
   481
		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
   482
			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
   483
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   484
	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
   485
    ] 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
   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
     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
   489
	(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
   490
	       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
   491
	       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
   492
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   493
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   494
    "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
   495
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   498
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
   499
    "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
   500
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   501
    | 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
   502
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   503
    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
   504
    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
   505
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   506
    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
   507
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   508
	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
   509
	arrayOfPointsAndRadiusWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   510
	    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
   511
		| 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
   512
		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
   513
		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
   514
		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
   515
		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
   516
		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
   517
			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
   518
		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
   519
			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
   520
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   521
	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
   522
    ] 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
   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
     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
   526
	(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
   527
	       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
   528
	       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
   529
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   530
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   531
    "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
   532
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   535
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
   536
    "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
   537
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   538
    | 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
   539
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   540
    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
   541
    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
   542
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   543
    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
   544
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   545
	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
   546
	polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   547
	    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
   548
		 |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
   549
		 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
   550
		 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
   551
		 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
   552
		 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
   553
			 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
   554
		 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
   555
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   556
	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
   557
    ] 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
   558
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   559
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   560
     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
   561
	(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
   562
				Array
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: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
   564
				    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
   565
				    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
   566
				    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
   567
				    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
   568
			    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
   569
			    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
   570
		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
   571
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   572
				    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
   573
				    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
   574
				    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
   575
			     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
   576
			     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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   580
    "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
   581
    "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
   582
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   585
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
   586
    "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
   587
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   588
    | 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
   589
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   590
    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
   591
    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
   592
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   593
    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
   594
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   595
	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
   596
	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
   597
	rectanglesWithHatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   598
	    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
   599
		|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
   600
		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
   601
		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
   602
		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
   603
		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
   604
			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
   605
			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
   606
			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
   607
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   608
	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
   609
    ] 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
   610
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
     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
   613
	(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
   614
	       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
   615
	       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
   616
	       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
   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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   619
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   620
    "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
   621
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   624
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
   625
    "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
   626
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   627
    | 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
   628
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   629
    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
   630
    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
   631
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   632
    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
   633
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   634
	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
   635
	polygonsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   636
	    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
   637
		 |aPolygon|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   638
		 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
   639
		 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
   640
		 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
   641
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   642
	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
   643
    ] 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
   644
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   645
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   646
     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
   647
	(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
   648
				Array
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: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
   650
				    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
   651
				    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
   652
				    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
   653
				    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
   654
			    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
   655
		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
   656
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   657
				    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
   658
				    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
   659
				    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
   660
			     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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   664
    "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
   665
    "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
   666
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   669
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
   670
    "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
   671
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   672
    | 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
   673
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   674
    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
   675
    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
   676
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 := 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
   678
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   679
	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
   680
	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
   681
	rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   682
	    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
   683
		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
   684
			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
   685
			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
   686
			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
   687
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   688
	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
   689
    ] 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
   690
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
     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
   693
	(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
   694
	       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
   695
	       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
   696
	       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
   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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   699
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   700
    "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
   701
    "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
   702
!
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
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
   705
    "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
   706
     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
   707
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   708
    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
   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
   "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   711
    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
   712
    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
   713
    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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   716
    "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
   717
    "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
   718
    "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
   719
!
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
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
   722
    "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
   723
     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
   724
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   725
    | 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
   726
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   727
    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
   728
    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
   729
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   730
    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
   731
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   732
	printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   733
	    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
   734
	    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
   735
	    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
   736
	    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
   737
	    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
   738
    ] 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
   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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   741
     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
   742
     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
   743
     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
   744
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   745
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   746
    "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
   747
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   750
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
   751
    "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
   752
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   753
    | 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
   754
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   755
    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
   756
    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
   757
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 := 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
   759
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   760
	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
   761
	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
   762
	arrayOfPointsAndRadius
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   763
	    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
   764
		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
   765
			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
   766
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   767
	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
   768
    ] 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
   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
     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
   772
	(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
   773
	       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
   774
	       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
   775
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   776
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   777
    "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
   778
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   781
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
   782
    "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
   783
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   784
    | 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
   785
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   786
    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
   787
    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
   788
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   789
    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
   790
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   791
	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
   792
	rectangles
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   793
	   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
   794
	       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
   795
	   ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   796
       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
   797
    ] 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
   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
     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
   801
	(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
   802
	       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
   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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   805
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   806
    "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
   807
    "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
   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
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
   811
    "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
   812
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   813
    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
   814
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
     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
   817
     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
   818
     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
   819
     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
   820
     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
   821
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   822
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   823
    "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
   824
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   827
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
   828
    "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
   829
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   830
    | 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
   831
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   832
    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
   833
    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
   834
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   835
    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
   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
	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
   838
	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
   839
	(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
   840
	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
   841
    ] 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
   842
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
     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
   845
     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
   846
     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
   847
     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
   848
     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
   849
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   850
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   851
    "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
   852
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   855
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
   856
    "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
   857
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   858
    | 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
   859
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   860
    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
   861
    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
   862
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   863
    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
   864
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   865
	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
   866
	pairOfPointsWithContextArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   867
	    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
   868
		 |pairOfPoints|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   869
		 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
   870
		 printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   871
		    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
   872
		    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
   873
		    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
   874
		    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
   875
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   876
	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
   877
    ] 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
   878
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
     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
   881
	(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
   882
	       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
   883
	       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
   884
	       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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   887
    "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
   888
    "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
   889
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   892
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
   893
    "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
   894
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   895
    | 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
   896
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   897
    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
   898
    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
   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 := 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
   901
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   902
	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
   903
	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
   904
	    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
   905
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   906
	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
   907
    ] 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
   908
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   909
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   910
     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
   911
	(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
   912
	       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
   913
	       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
   914
	       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
   915
	       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
   916
	       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
   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
    "
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   921
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
   922
    "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
   923
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   924
    | 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
   925
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   926
    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
   927
    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
   928
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   929
    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
   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 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
   932
	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
   933
	polygons
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   934
	    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
   935
		 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
   936
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   937
	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
   938
    ] 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
   939
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   940
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   941
     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
   942
	(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
   943
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   944
				    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
   945
				    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
   946
				    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
   947
				    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
   948
				    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
   949
		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
   950
				Array
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   951
				    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
   952
				    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
   953
				    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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   956
    "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
   957
    "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
   958
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   961
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
   962
    "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
   963
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   964
    | 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
   965
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   966
    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
   967
    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
   968
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   969
    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
   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
	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
   972
	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
   973
	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
   974
    ] 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
   975
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   976
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   977
     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
   978
	(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
   979
	       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
   980
	       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
   981
	       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
   982
	       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
   983
	       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
   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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   986
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   987
    "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
   988
    "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
   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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   991
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
   992
    "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
   993
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   994
    | 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
   995
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   996
    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
   997
    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
   998
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
   999
    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
  1000
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1001
	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
  1002
	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
  1003
	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
  1004
	    |rectangle|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1005
	    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
  1006
	    printer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1007
		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
  1008
		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
  1009
		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
  1010
		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
  1011
			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
  1012
			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
  1013
			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
  1014
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1015
	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
  1016
    ] 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
  1017
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1018
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1019
     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
  1020
	(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
  1021
	       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
  1022
	       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
  1023
	       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
  1024
	       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
  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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1027
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1028
    "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
  1029
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1032
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
  1033
    "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
  1034
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1035
    | 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
  1036
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1037
    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
  1038
    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
  1039
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 := 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
  1041
    [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1042
	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
  1043
	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
  1044
	stringAndPositionsArray
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1045
	    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
  1046
		 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
  1047
			    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
  1048
			    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
  1049
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1050
	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
  1051
    ] 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
  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
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1054
     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
  1055
	(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
  1056
	       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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1059
    "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
  1060
    "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
  1061
    "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
  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
!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
  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
depth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1067
    ^ 24
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1070
deviceColors
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1071
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1072
    ^#()
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
deviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1076
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1077
    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
  1078
    ^deviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1079
!
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
getCharHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1082
    "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
  1083
     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
  1084
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1085
    |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
  1086
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1087
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1088
    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
  1089
"/    (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
  1090
"/    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
  1091
"/    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
  1092
    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
  1093
"/    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
  1094
    ^answer
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1095
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1096
    "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
  1097
    "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
  1098
    "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
  1099
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1101
getLogicalPixelSizeX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1102
    ^ 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
  1103
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1104
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1105
getLogicalPixelSizeY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1106
    ^ 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
  1107
!
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
numberOfColorBitsPerPixel
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1110
    ^ 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
  1111
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1112
    "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
  1113
    "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
  1114
!
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
physicalOffsetX
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1117
    ^ 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
  1118
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1119
    "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
  1120
    "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
  1121
!
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
physicalOffsetY
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1124
    ^ 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
  1125
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1126
    "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
  1127
    "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
  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
pixelsPerInchOfScreenHeight
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: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
  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: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
  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
pixelsPerInchOfScreenWidth
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: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
  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
    "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
  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
printerHeightArea
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 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
  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
    "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
  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
printerPhysicalHeight
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: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
  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
printerPhysicalWidth
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: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
  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
printerWidthArea
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1161
    ^ 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
  1162
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1163
    "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
  1164
!
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
supportedImageFormats
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1167
    "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
  1168
     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
  1169
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1170
    |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
    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
  1173
    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
  1174
    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
  1175
    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
  1176
    ^ 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
  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
     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
  1180
    "
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
    "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
  1183
!
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
visualType
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1186
    ^ #TrueColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1187
! !
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
!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
  1190
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1191
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
  1192
    "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
  1193
     (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
  1194
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1195
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1196
    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
  1197
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1198
    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
  1199
	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
  1200
	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
  1201
	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
  1202
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1203
	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
  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
	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
  1206
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1207
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1208
    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
  1209
    ^ nil
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1212
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
  1213
    "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
  1214
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1215
%{  /* NOCONTEXT */
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
    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
  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
    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
  1220
	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
  1221
	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
  1222
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1223
	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
  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
	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
  1226
/*        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
  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
	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
  1229
	    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1232
	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
  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
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1237
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
  1238
    "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
  1239
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1240
    |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
  1241
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1242
    (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
  1243
	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
  1244
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1245
	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
  1246
	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
  1247
	    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
  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
    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
  1251
	'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
  1252
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1253
	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
  1254
    ]
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1257
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
  1258
    "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
  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
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1261
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1262
    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
  1263
	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
  1264
	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
  1265
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1266
/*        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
  1267
	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
  1268
/*        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
  1269
	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
  1270
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1271
	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
  1272
	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
  1273
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1274
	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
  1275
	    /* 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
  1276
	    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
  1277
		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
  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
	    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
  1280
		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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1283
	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
  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
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1288
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
  1289
    "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
  1290
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1291
%{  /* NOCONTEXT */
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
    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
  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
    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
  1296
	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
  1297
	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
  1298
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1299
	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
  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
	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
  1302
/*        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
  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
	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
  1305
	    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1308
	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
  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
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1313
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
  1314
    "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
  1315
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1316
    |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
  1317
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1318
    (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
  1319
	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
  1320
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1321
	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
  1322
	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
  1323
	    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
  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
    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
  1327
	'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
  1328
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1329
	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
  1330
    ]
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1333
!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
  1334
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1335
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
  1336
    "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
  1337
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1338
    | 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
  1339
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1340
	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
  1341
	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
  1342
	 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
  1343
	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
  1344
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1345
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1346
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1347
    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
  1348
     && __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
  1349
	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
  1350
	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
  1351
	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
  1352
	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
  1353
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1354
	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
  1355
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1356
	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
  1357
	    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
  1358
	} 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
  1359
	    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
  1360
	} 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
  1361
	    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
  1362
	} 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
  1363
	    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
  1364
	} 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
  1365
	    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
  1366
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1367
	    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
  1368
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1369
	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
  1370
	    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
  1371
	} 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
  1372
	    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
  1373
	} 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
  1374
	    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
  1375
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1376
	    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
  1377
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1378
	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
  1379
	    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
  1380
	} 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
  1381
	    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
  1382
	} 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
  1383
	    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
  1384
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1385
	    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
  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
	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
  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
	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
  1391
	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
  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
	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
  1395
    }
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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1400
getPenForContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1401
    "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
  1402
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1403
   | 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
  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
   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
  1406
	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
  1407
	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
  1408
	 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
  1409
	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
  1410
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1411
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1412
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1413
    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
  1414
     && __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
  1415
	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
  1416
	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
  1417
	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
  1418
	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
  1419
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1420
	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
  1421
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1422
	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
  1423
	    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
  1424
	} 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
  1425
	    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
  1426
	} 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
  1427
	    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
  1428
	} 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
  1429
	    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
  1430
	} 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
  1431
	    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
  1432
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1433
	    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
  1434
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1435
	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
  1436
	    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
  1437
	} 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
  1438
	    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
  1439
	} 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
  1440
	    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
  1441
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1442
	    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
  1443
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1444
	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
  1445
	    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
  1446
	} 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
  1447
	    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
  1448
	} 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
  1449
	    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
  1450
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1451
	    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
  1452
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
	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
  1455
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1456
	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
  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
	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
  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
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1461
    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
  1462
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1463
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1464
hatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1465
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1466
    "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
  1467
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1468
       #none
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1469
       #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
  1470
       #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
  1471
       #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
  1472
       #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
  1473
       #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
  1474
       #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
  1475
    "
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
    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
  1478
    ^ hatch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1479
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1480
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1481
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
  1482
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1483
    "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
  1484
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1485
       #none
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1486
       #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
  1487
       #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
  1488
       #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
  1489
       #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
  1490
       #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
  1491
       #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
  1492
    "
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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1497
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
  1498
    "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
  1499
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1500
%{  /* NOCONTEXT */
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
    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
  1503
	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
  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
	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
  1506
	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
  1507
    }
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1511
platformName
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1512
    "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
  1513
    ^ 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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1516
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
  1517
    "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
  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
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1520
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1521
    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
  1522
	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
  1523
	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
  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
/*        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
	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
  1527
	    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
  1528
	else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1529
	    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
  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
	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
  1532
	  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
  1533
	    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
  1534
	}                                                     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1535
	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
  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
!
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
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
  1541
    "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
  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
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1544
      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
  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
      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
  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
      -------
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1549
	  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
  1550
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1551
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1552
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1553
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1554
    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
  1555
     && __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
  1556
     && __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
  1557
	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
  1558
	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
  1559
	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
  1560
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1561
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1562
	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
  1563
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1564
	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
  1565
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1566
	// 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
  1567
	// 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
  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
	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
  1570
	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
  1571
	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
  1572
	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
  1573
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1574
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1575
	    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
  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
	    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
  1578
		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
  1579
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1580
		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
  1581
		    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
  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
		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
  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
	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
  1587
    }
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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1592
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
  1593
    "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
  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
%{  /* NOCONTEXT */
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
    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
  1598
	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
  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
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1603
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
  1604
    "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
  1605
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1606
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1607
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1608
    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
  1609
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1610
    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
  1611
     && __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
  1612
	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
  1613
	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
  1614
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1615
	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
  1616
	    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
  1617
	} 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
  1618
	    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
  1619
	} 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
  1620
	    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
  1621
	} 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
  1622
	    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
  1623
	} 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
  1624
	    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
  1625
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1626
	    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
  1627
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1628
	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
  1629
	    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
  1630
	} 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
  1631
	    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
  1632
	} 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
  1633
	    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
  1634
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1635
	    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
  1636
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1637
	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
  1638
	    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
  1639
	} 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
  1640
	    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
  1641
	} 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
  1642
	    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
  1643
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1644
	    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
  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
	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
  1648
    }
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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1653
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
  1654
    "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
  1655
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1656
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1657
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1658
    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
  1659
     && __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
  1660
	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
  1661
	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
  1662
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1663
	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
  1664
	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
  1665
	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
  1666
	 || (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
  1667
	    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
  1668
	    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
  1669
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1670
	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
  1671
    }
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
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1674
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1675
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
  1676
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1677
    "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
  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
    ^ OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1680
	    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
  1681
	    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
  1682
	    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
  1683
	    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
  1684
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1685
    "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
  1686
! !
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
!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
  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
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
  1691
    "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
  1692
     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
  1693
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1694
     | 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
  1695
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1696
     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
  1697
     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
  1698
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1699
    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
  1700
    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
  1701
    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
  1702
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1703
    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
  1704
	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
  1705
    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
  1706
	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
  1707
    } 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
  1708
	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
  1709
    } 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
  1710
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1711
    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
  1712
	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
  1713
    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
  1714
	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
  1715
    } 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
  1716
	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
  1717
    } 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
  1718
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1719
    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
  1720
	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
  1721
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1722
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1723
    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
  1724
     && __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
  1725
     && __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
  1726
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1727
	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
  1728
	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
  1729
	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
  1730
	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
  1731
	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
  1732
	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
  1733
	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
  1734
	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
  1735
	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
  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
	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
  1738
	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
  1739
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1740
	/*  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
  1741
	    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
  1742
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1743
	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
  1744
	    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
  1745
	} 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
  1746
	    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
  1747
	} 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
  1748
	    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
  1749
	} 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
  1750
	    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
  1751
	} 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
  1752
	    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
  1753
	} 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
  1754
	    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
  1755
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1756
	    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
  1757
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1758
	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
  1759
	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
  1760
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1761
	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
  1762
	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
  1763
	__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
  1764
	__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
  1765
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1766
	    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
  1767
	    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
  1768
	    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
  1769
		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
  1770
		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
  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
		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
  1773
		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
  1774
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1775
		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
  1776
		  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
  1777
		else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1778
		  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
  1779
		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
  1780
		/* 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
  1781
		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
  1782
		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
  1783
		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
  1784
		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
  1785
		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
  1786
		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
  1787
		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
  1788
		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
  1789
		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
  1790
		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
  1791
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1792
	    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
  1793
	    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
  1794
	    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
  1795
		__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
  1796
		__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
  1797
		(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
  1798
		(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
  1799
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1800
	    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
  1801
	    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
  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
	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
  1804
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1805
    bad: ;
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
    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
  1808
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1809
    "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
  1810
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1813
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
  1814
    "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
  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
     | 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
  1817
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1818
     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
  1819
     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
  1820
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1821
%{ 
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1822
    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
  1823
     && __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
  1824
     && __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
  1825
	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
  1826
	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
  1827
	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
  1828
	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
  1829
	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
  1830
	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
  1831
	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
  1832
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1833
/*      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
  1834
		    __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
  1835
		    __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
  1836
*/
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
	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
  1839
	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
  1840
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1841
	/*  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
  1842
	    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
  1843
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1844
	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
  1845
	    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
  1846
	} 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
  1847
	    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
  1848
	} 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
  1849
	    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
  1850
	} 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
  1851
	    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
  1852
	} 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
  1853
	    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
  1854
	} 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
  1855
	    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
  1856
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1857
	    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
  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
	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
  1860
	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
  1861
	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
  1862
	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
  1863
	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
  1864
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1865
	 * 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
  1866
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1867
	// 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
  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
	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
  1870
	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
  1871
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1872
	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
  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
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1875
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1876
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1877
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
  1878
    "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
  1879
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1880
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1881
    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
  1882
     && __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
  1883
	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
  1884
	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
  1885
	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
  1886
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1887
	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
  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
	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
  1890
	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
  1891
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1892
	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
  1893
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1894
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1897
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
  1898
    "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
  1899
     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
  1900
     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
  1901
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1902
    | 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
  1903
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1904
     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
  1905
     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
  1906
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1907
    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
  1908
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1909
    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
  1910
    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
  1911
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1912
    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
  1913
     /* && __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
  1914
     && __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
  1915
	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
  1916
	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
  1917
	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
  1918
	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
  1919
	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
  1920
	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
  1921
	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
  1922
	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
  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
	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
  1925
	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
  1926
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1927
	/*  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
  1928
	    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
  1929
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1930
	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
  1931
	    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
  1932
	} 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
  1933
	    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
  1934
	} 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
  1935
	    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
  1936
	} 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
  1937
	    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
  1938
	} 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
  1939
	    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
  1940
	} 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
  1941
	    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
  1942
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1943
	    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
  1944
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1945
	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
  1946
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1947
	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
  1948
	    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
  1949
	    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
  1950
	    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
  1951
	    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
  1952
	    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
  1953
		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
  1954
	    }
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1957
	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
  1958
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1959
	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
  1960
	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
  1961
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1962
	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
  1963
	    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
  1964
	    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
  1965
	    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
  1966
	    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
  1967
	    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
  1968
	    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
  1969
		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
  1970
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1971
		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
  1972
		    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
  1973
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1974
		    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
  1975
#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
  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
		     * 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
  1978
		     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1979
		    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
  1980
#endif
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
	    }
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
	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
  1985
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1988
	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
  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
fail: ;
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1993
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1996
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
  1997
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  1998
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2001
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
  2002
    "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
  2003
     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
  2004
     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
  2005
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2006
    |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
  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
    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
  2009
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2010
 	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
  2011
	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
  2012
	
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
    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
  2015
    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
  2016
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2017
    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
  2018
     && __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
  2019
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2020
	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
  2021
	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
  2022
	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
  2023
	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
  2024
	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
  2025
	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
  2026
	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
  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
	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
  2029
	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
  2030
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2031
	/*  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
  2032
	    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
  2033
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2034
	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
  2035
	    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
  2036
	} 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
  2037
	    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
  2038
	} 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
  2039
	    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
  2040
	} 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
  2041
	    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
  2042
	} 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
  2043
	    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
  2044
	} 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
  2045
	    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
  2046
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2047
	    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
  2048
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2049
	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
  2050
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2051
	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
  2052
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2053
	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
  2054
	    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
  2055
	    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
  2056
	    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
  2057
	    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
  2058
	    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
  2059
		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
  2060
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2061
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2062
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2063
	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
  2064
	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
  2065
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2066
	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
  2067
	    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
  2068
	    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
  2069
	    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
  2070
	    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
  2071
	    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
  2072
	    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
  2073
	    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
  2074
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2075
	    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
  2076
		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
  2077
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2078
		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
  2079
		/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2080
		 * 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
  2081
		 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2082
		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
  2083
	    }
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
	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
  2086
	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
  2087
	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
  2088
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2089
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2090
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2093
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
  2094
    "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
  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
    | 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
  2097
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2098
    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
  2099
	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
  2100
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2101
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
    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
  2104
    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
  2105
    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
  2106
     && __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
  2107
     && __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
  2108
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2109
	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
  2110
	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
  2111
	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
  2112
	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
  2113
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2114
	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
  2115
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2116
	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
  2117
	    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
  2118
	    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
  2119
	    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
  2120
	    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
  2121
	    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
  2122
	    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
  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
	    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
  2125
	    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
  2126
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2127
	    /*  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
  2128
		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
  2129
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2130
	    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
  2131
		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
  2132
	    } 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
  2133
		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
  2134
	    } 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
  2135
		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
  2136
	    } 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
  2137
		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
  2138
	    } 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
  2139
		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
  2140
	    } 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
  2141
		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
  2142
	    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2143
		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
  2144
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2145
	    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
  2146
	    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
  2147
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2148
	    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
  2149
	    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
  2150
	    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
  2151
	    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
  2152
	    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
  2153
	    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
  2154
	    // 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
  2155
	    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
  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
	    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
  2158
	    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2161
	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
  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
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2164
    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
  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
    "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
  2167
!
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
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
  2170
    |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
  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
    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
  2173
    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
  2174
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2175
    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
  2176
    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
  2177
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2178
    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
  2179
	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
  2180
	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
  2181
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2182
	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
  2183
	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
  2184
    ].
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
    "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
  2187
    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
  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
    "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
  2190
    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
  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
    "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
  2193
    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
  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
    "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
  2196
    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
  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
    "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
  2199
    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
  2200
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2201
    "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
  2202
    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
  2203
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2204
    "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
  2205
    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
  2206
		      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
  2207
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2208
    "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
  2209
    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
  2210
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
     |v|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2214
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2215
     (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
  2216
     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
  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
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2219
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2220
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
  2221
    "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
  2222
     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
  2223
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2224
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2225
	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
  2226
	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
  2227
	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
  2228
	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
  2229
	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
  2230
	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
  2231
	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
  2232
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2235
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
  2236
    "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
  2237
     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
  2238
     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
  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
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2241
    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
  2242
    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
  2243
    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
  2244
    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
  2245
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2246
    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
  2247
     && __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
  2248
     && __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
  2249
     && __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
  2250
    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2251
	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
  2252
	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
  2253
	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
  2254
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2255
	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
  2256
	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
  2257
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2258
	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
  2259
	    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
  2260
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2261
	    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
  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
	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
  2264
	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
  2265
	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
  2266
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2267
	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
  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
	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
  2270
	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
  2271
	    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
  2272
	    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
  2273
		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
  2274
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2275
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 = _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
  2277
	    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
  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 ((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
  2280
		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
  2281
		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
  2282
		    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
  2283
		    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
  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
		    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
  2286
			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
  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
		    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
  2289
			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
  2290
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2291
		    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
  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
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2294
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2295
	    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
  2296
	    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
  2297
	    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
  2298
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2299
	    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
  2300
		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
  2301
		    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
  2302
		    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
  2303
		    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
  2304
			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
  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
		    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
  2307
			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
  2308
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2309
		    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
  2310
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2311
	    }
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
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2314
	    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
  2315
		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
  2316
		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
  2317
		    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
  2318
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2319
		    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
  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
		    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
  2322
			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
  2323
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2324
		    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
  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
	    }
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
ret:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2329
	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
  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
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2332
    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
  2333
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2334
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2337
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
  2338
    "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
  2339
     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
  2340
     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
  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
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2343
    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
  2344
    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
  2345
    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
  2346
    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
  2347
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2348
    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
  2349
     && __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
  2350
     && __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
  2351
     && __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
  2352
    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2353
	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
  2354
	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
  2355
	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
  2356
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2357
	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
  2358
	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
  2359
	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
  2360
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2361
	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
  2362
	    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
  2363
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2364
	    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
  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
	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
  2367
	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
  2368
	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
  2369
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2370
	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
  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
	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
  2373
	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
  2374
	    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
  2375
	    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
  2376
		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
  2377
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2378
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 = _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
  2380
	    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
  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 ((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
  2383
		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
  2384
		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
  2385
		    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
  2386
		    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
  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
		    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
  2389
			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
  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
		    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
  2392
			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
  2393
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2394
		    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
  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
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2397
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2398
	    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
  2399
	    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
  2400
	    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
  2401
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2402
	    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
  2403
		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
  2404
		    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
  2405
		    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
  2406
		    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
  2407
			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
  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
		    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
  2410
			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
  2411
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2412
		    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
  2413
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2414
	    }
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
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2417
	    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
  2418
		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
  2419
		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
  2420
		    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
  2421
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2422
		    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
  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
		    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
  2425
			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
  2426
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2427
		    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
  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
	    }
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
ret:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2432
	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
  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
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2435
    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
  2436
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2437
    "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
  2438
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2439
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2440
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
  2441
    "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
  2442
     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
  2443
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2444
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2445
	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
  2446
	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
  2447
	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
  2448
	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
  2449
	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
  2450
	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
  2451
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2452
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2453
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
  2454
    "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
  2455
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2456
    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
  2457
		  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
  2458
		    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
  2459
		     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
  2460
		     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
  2461
		     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
  2462
		     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
  2463
		     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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2466
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
  2467
	       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
  2468
    "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
  2469
     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
  2470
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2471
    | hatchSymbol |
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
    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
  2474
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2475
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2476
    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
  2477
    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
  2478
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2479
    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
  2480
	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
  2481
    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
  2482
	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
  2483
    } 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
  2484
	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
  2485
    } 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
  2486
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2487
    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
  2488
	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
  2489
    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
  2490
	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
  2491
    } 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
  2492
	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
  2493
    } 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
  2494
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2495
    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
  2496
	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
  2497
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2498
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2499
    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
  2500
     && __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
  2501
     && __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
  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
	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
  2504
	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
  2505
	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
  2506
	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
  2507
	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
  2508
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2509
	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
  2510
	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
  2511
	__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
  2512
	__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
  2513
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2514
	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
  2515
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2516
	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
  2517
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2518
	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
  2519
	    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
  2520
	} 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
  2521
	    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
  2522
	} 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
  2523
	    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
  2524
	} 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
  2525
	    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
  2526
	} 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
  2527
	    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
  2528
	} 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
  2529
	    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
  2530
	} 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
  2531
	    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
  2532
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2533
	    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
  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
	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
  2536
	    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
  2537
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2538
	    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
  2539
	}
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
	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
  2542
	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
  2543
	    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
  2544
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2545
	    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
  2546
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2547
	    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
  2548
		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
  2549
		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
  2550
		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
  2551
		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
  2552
		    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
  2553
		    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
  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
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2556
		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
  2557
		w++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2558
		h++;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2559
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2560
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2561
	    {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2562
		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
  2563
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2564
		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
  2565
		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
  2566
		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
  2567
		    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
  2568
		    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
  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
		    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
  2571
		    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
  2572
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2573
		    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
  2574
			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
  2575
		    else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2576
			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
  2577
		    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
  2578
		    /* 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
  2579
		    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
  2580
		    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
  2581
		    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
  2582
		    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
  2583
		    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
  2584
		    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
  2585
		    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
  2586
		    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
  2587
		    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
  2588
		    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
  2589
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2590
		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
  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
		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
  2593
		    __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
  2594
		    __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
  2595
		    (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
  2596
		    (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
  2597
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2598
		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
  2599
		    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
  2600
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2601
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2602
failpen:
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2603
	    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
  2604
	    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
  2605
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2606
	    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
  2607
	    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
  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
	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
  2610
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2611
    bad: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2612
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2613
    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
  2614
!
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
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
  2617
    "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
  2618
     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
  2619
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2620
    |numberOfPoints|
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
    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
  2623
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2624
	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
  2625
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2628
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
  2629
    "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
  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
    |hatchSymbol|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2632
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2633
    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
  2634
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2635
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2636
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2637
    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
  2638
    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
  2639
     && __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
  2640
     && __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
  2641
	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
  2642
	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
  2643
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2644
	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
  2645
	    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
  2646
	    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
  2647
	    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
  2648
	    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
  2649
	    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
  2650
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2651
	    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
  2652
	    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
  2653
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2654
	    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
  2655
		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
  2656
	    } 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
  2657
		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
  2658
	    } 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
  2659
		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
  2660
	    } 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
  2661
		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
  2662
	    } 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
  2663
		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
  2664
	    } 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
  2665
		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
  2666
	    } 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
  2667
		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
  2668
	    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2669
		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
  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
	    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
  2672
		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
  2673
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2674
		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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2677
	    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
  2678
	    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
  2679
	    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
  2680
	    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
  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
	   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
  2683
	   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
  2684
	   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
  2685
	   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
  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
    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
  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
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
!
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
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
  2696
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2697
    |hatchSymbol|
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
    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
  2700
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2701
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2702
    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
  2703
    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
  2704
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2705
    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
  2706
     && __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
  2707
	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
  2708
	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
  2709
	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
  2710
	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
  2711
	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
  2712
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2713
	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
  2714
	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
  2715
	    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
  2716
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2717
	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
  2718
	    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
  2719
	    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
  2720
	    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
  2721
	    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
  2722
	    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
  2723
		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
  2724
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2725
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2726
	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
  2727
	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
  2728
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2729
	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
  2730
	    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
  2731
	} 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
  2732
	    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
  2733
	} 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
  2734
	    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
  2735
	} 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
  2736
	    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
  2737
	} 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
  2738
	    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
  2739
	} 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
  2740
	    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
  2741
	} 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
  2742
	    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
  2743
	} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2744
	    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
  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 (hasHatch) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2747
	    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
  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
	    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2752
	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
  2753
	    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
  2754
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2755
	    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
  2756
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2757
	    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
  2758
	    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
  2759
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2760
	    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
  2761
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2762
	    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
  2763
		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
  2764
		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
  2765
		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
  2766
		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
  2767
		    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
  2768
		} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2769
		    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
  2770
			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
  2771
			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
  2772
			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
  2773
		    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2774
			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
  2775
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2776
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2777
	    }
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
	    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
  2780
	    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
  2781
	    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
  2782
	    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
  2783
	    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
  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
	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
  2786
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2787
fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2788
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2789
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2790
!
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
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
  2793
    "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
  2794
     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
  2795
     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
  2796
     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
  2797
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2798
    |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
  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
    "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
  2801
    (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
  2802
    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
  2803
	^ 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
  2804
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2805
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2806
    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
  2807
	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
  2808
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2809
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2810
    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
  2811
    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
  2812
	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
  2813
	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
  2814
	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
  2815
	    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
  2816
	    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
  2817
		"/ 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
  2818
		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
  2819
	    ] 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
  2820
		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
  2821
		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
  2822
		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
  2823
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2824
	]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2825
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2826
	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
  2827
	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
  2828
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2829
    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
  2830
    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
  2831
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2832
    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
  2833
    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
  2834
    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
  2835
    (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
  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
	    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
  2838
	] 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
  2839
	    "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
  2840
	     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
  2841
	    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
  2842
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2843
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2844
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2845
    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
  2846
    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
  2847
	"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
  2848
	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
  2849
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2850
	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
  2851
	    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
  2852
	    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
  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
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2857
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2860
!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
  2861
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2862
bitsBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2863
    "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
  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
"/    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
  2866
"/        "/ 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
  2867
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2868
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2869
"/    ^ bitsRed
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
     ^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
  2872
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2873
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2874
bitsGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2875
    "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
  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
"/    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
  2878
"/        "/ 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
  2879
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2880
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2881
"/    ^ bitsRed
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
     ^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
  2884
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2885
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2886
bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2887
    "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
  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
"/    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
  2890
"/        "/ 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
  2891
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2892
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2893
"/    ^ bitsRed
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
     ^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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2898
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
  2899
    "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
  2900
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2901
    |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
  2902
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2903
    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
  2904
    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
  2905
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2906
    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
  2907
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2911
    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
  2912
    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
  2913
	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
  2914
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2915
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2916
    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
  2917
	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
  2918
	^ image
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2921
	"/ 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
  2922
	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
  2923
	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
  2924
	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
  2925
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2926
	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
  2927
	    |newPixel|
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
	    (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
  2930
		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
  2931
		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
  2932
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2933
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2934
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2935
	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
  2936
	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
  2937
	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
  2938
	    "/ 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
  2939
	    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
  2940
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2941
		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
  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:tmpBits
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:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2946
	    tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2947
		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
  2948
		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
  2949
		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
  2950
		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
  2951
		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
  2952
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2953
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2954
		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
  2955
		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
  2956
		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
  2957
		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
  2958
		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
  2959
	].
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 := 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
  2962
			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
  2963
			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
  2964
			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
  2965
			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
  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
	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
  2968
	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
  2969
	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
  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
	^ newImage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2972
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2973
    "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
  2974
    "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
  2975
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2976
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2977
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
  2978
		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
  2979
    "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
  2980
     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
  2981
     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
  2982
     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
  2983
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2984
     | function |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2985
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2986
     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
  2987
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2988
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2989
    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
  2990
    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
  2991
    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
  2992
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  2993
    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
  2994
     || ! __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
  2995
	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
  2996
    }
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
    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
  2999
     && __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
  3000
     && __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
  3001
	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
  3002
	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
  3003
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3004
	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
  3005
	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
  3006
	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
  3007
	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
  3008
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3009
//          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
  3010
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3011
	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
  3012
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3013
	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
  3014
	    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
  3015
/*            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
  3016
	} 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
  3017
	    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
  3018
/*            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
  3019
	} 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
  3020
	    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
  3021
/*            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
  3022
	} 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
  3023
	    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
  3024
/*            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
  3025
	} 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
  3026
	    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
  3027
/*            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
  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
    // 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
  3031
    // 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
  3032
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(" ", buf);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3034
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3035
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3036
#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
  3037
	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
  3038
	  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
  3039
	    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
  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_COPYINVERTED:
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_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
  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_XOR:
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_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
  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
	  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
  3048
	    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
  3049
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3050
	  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
  3051
	    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
  3052
	    break;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3053
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3054
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3055
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3056
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3057
//          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
  3058
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3059
	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
  3060
	    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
  3061
	    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
  3062
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3063
	    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
  3064
	    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
  3065
	    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
  3066
	    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
  3067
	}
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
	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
  3070
	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
  3071
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3072
	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
  3073
	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
  3074
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3075
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3076
	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
  3077
	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
  3078
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3079
	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
  3080
	     __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
  3081
	     __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
  3082
	     srcDC,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3083
	     __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
  3084
	     fun)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3085
	   == 0
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3086
	  ) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3087
	    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3090
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3091
	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
  3092
	    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
  3093
	    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
  3094
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3095
	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
  3096
	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
  3097
*/
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
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3100
	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
  3101
	    _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
  3102
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3103
	_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
  3104
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3105
	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
  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
 fail: ;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3109
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3110
    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
  3111
    ^ nil
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3114
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
  3115
    "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
  3116
     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
  3117
     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
  3118
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3119
    ^ 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
  3120
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3121
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3122
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
  3123
		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
  3124
    "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
  3125
     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
  3126
     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
  3127
     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
  3128
     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
  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
    ^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3131
	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
  3132
		 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
  3133
		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
  3134
	     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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3137
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
  3138
    "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
  3139
     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
  3140
     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
  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
    ^ 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
  3143
!
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
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
  3146
    |bitmapId|
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3149
    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
  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
    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
  3152
	'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
  3153
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3154
    ^ bitmapId
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3157
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
  3158
    "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
  3159
     (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
  3160
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3161
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3162
    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
  3163
    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
  3164
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3165
    /*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
  3166
    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
  3167
	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
  3168
	    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
  3169
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3170
#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
  3171
	    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
  3172
		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
  3173
		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
  3174
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3175
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3176
	    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
  3177
	}
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
	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
  3180
	    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
  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
	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
  3184
*/
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
    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
  3187
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3188
!
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
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
  3191
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3192
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3193
    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
  3194
	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
  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
	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
  3197
	    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
  3198
	/*    _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
  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
    }
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
!
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
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
  3205
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3206
    |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
  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
    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
  3209
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3210
    "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
  3211
    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
  3212
	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
  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 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
  3215
    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
  3216
	|bestFormat|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3217
	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
  3218
	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
  3219
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3220
    "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
  3221
    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
  3222
	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
  3223
	    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
  3224
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3225
"/        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
  3226
	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
  3227
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3228
	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
  3229
	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
  3230
	    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
  3231
	    ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3232
		|bitsWithTransparencySize|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3233
		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
  3234
		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
  3235
		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
  3236
		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
  3237
		    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
  3238
			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
  3239
"/                    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
  3240
		    ].
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3244
	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
  3245
	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
  3246
	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
  3247
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3248
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3249
    self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3250
	 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
  3251
	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
  3252
      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
  3253
       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
  3254
     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
  3255
	    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
  3256
	    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
  3257
	   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
  3258
	     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
  3259
		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
  3260
		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
  3261
	    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
  3262
	   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
  3263
	     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
  3264
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3265
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3266
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
  3267
			  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
  3268
			      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
  3269
			   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
  3270
			      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
  3271
			  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
  3272
			   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
  3273
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3274
    "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
  3275
     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
  3276
     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
  3277
     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
  3278
     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
  3279
     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
  3280
     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
  3281
     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
  3282
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3283
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3284
     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
  3285
     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
  3286
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3287
    (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
  3288
					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
  3289
					     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
  3290
					  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
  3291
					     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
  3292
					 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
  3293
					  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
  3294
    ifFalse:[
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
	 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
  3297
	 XPutImage ...
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3298
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3299
	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
  3300
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3301
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3302
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3303
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
  3304
			      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
  3305
			       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
  3306
				  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
  3307
			      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
  3308
			       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
  3309
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3310
    "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
  3311
     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
  3312
     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
  3313
     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
  3314
     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
  3315
     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
  3316
     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
  3317
     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
  3318
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3319
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3320
     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
  3321
     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
  3322
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3323
    (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
  3324
			      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
  3325
			       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
  3326
				  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
  3327
			      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
  3328
			       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
  3329
    ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3330
	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
  3331
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3332
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3333
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3334
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
  3335
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3336
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3337
    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
  3338
    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
  3339
    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
  3340
    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
  3341
    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
  3342
    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
  3343
    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
  3344
    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
  3345
    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
  3346
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3347
    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
  3348
     && __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
  3349
	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
  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
	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
  3352
	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
  3353
	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
  3354
	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
  3355
	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
  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 ((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
  3358
	    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
  3359
	    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
  3360
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3361
	    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
  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
	    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
  3364
		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
  3365
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3366
		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
  3367
		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
  3368
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3369
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3370
	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
  3371
	    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
  3372
		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
  3373
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3374
		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
  3375
		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
  3376
		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
  3377
		    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
  3378
			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
  3379
			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
  3380
			    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
  3381
			*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
  3382
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3383
		    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
  3384
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3385
	    } 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
  3386
		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
  3387
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3388
		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
  3389
		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
  3390
		    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
  3391
			*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
  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
		    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
  3394
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3395
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3396
		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
  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
	}
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
	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
  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
	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
  3403
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3404
	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
  3405
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3406
	    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
  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
	    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
  3409
		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
  3410
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3411
	    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
  3412
	}
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
fail: ;
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
    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
  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
    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
  3419
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3420
	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
  3421
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3422
	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
  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
    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
  3426
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3427
    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
  3428
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3429
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3430
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3431
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
  3432
			      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
  3433
				  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
  3434
			       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
  3435
				  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
  3436
			      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
  3437
			       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
  3438
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3439
    "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
  3440
     (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
  3441
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3442
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3443
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3444
    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
  3445
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3446
    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
  3447
    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
  3448
    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
  3449
    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
  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 (__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
  3452
	__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
  3453
    } 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
  3454
	__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
  3455
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3456
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3457
    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
  3458
     && */ __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
  3459
     && __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
  3460
     && __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
  3461
     && __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
  3462
     && __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
  3463
     && __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
  3464
     && __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
  3465
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3466
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3467
	struct
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
	  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
  3470
	  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
  3471
	  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
  3472
	  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
  3473
	} bitmap;
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
	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
  3476
	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
  3477
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3478
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3479
	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
  3480
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3481
	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
  3482
	    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
  3483
	    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
  3484
	    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
  3485
	    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
  3486
	    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
  3487
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3488
	    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
  3489
	    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
  3490
	    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
  3491
	    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
  3492
	    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
  3493
	    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
  3494
	    /*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
  3495
	    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
  3496
		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
  3497
		    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
  3498
		} else {
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 = 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
  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
		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
  3502
		    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
  3503
		    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
  3504
			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
  3505
			    *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
  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
			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
  3508
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3509
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3510
		    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3513
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 (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
  3515
	    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
  3516
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3517
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.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
  3519
	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
  3520
	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
  3521
	    /*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
  3522
	    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
  3523
	    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
  3524
	    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
  3525
	    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
  3526
	} 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
  3527
	    /*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
  3528
	    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
  3529
	    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
  3530
	    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
  3531
	    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
  3532
	    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
  3533
	    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
  3534
	    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
  3535
	    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
  3536
	}
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.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
  3538
	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
  3539
	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
  3540
	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
  3541
	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
  3542
	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
  3543
	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
  3544
	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
  3545
	/*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
  3546
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3547
	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
  3548
			      __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
  3549
			      __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
  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
	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
  3556
			      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
  3557
			      (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
  3558
			      (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
  3559
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3560
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3561
	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
  3562
		      __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
  3563
		      __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
  3564
		      __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
  3565
		      __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
  3566
		      (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
  3567
		      (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
  3568
		      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
  3569
		      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
  3570
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3571
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3572
	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
  3573
	    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
  3574
	}
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
#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
  3577
	_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
  3578
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3579
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3580
	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
  3581
    }
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
fail: ;
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
    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
  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
    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
  3588
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3589
	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
  3590
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3591
	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
  3592
    }
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
#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
  3595
    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
  3596
	_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
  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
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3599
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3600
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3601
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3602
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3603
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3604
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3605
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
  3606
			      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
  3607
			       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
  3608
				  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
  3609
			      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
  3610
			       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
  3611
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3612
    "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
  3613
     (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
  3614
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3615
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3616
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3617
    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
  3618
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3619
%{
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 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
  3621
    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
  3622
    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
  3623
    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
  3624
    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
  3625
    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
  3626
    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
  3627
    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
  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(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3630
	__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
  3631
    } 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
  3632
	__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
  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(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3636
	__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
  3637
    } 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
  3638
	__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
  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(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3642
	__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
  3643
    } 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
  3644
	__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
  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 (__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
  3648
	__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
  3649
    } 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
  3650
	__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
  3651
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3652
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3653
    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
  3654
     && */ __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
  3655
//     && __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
  3656
     && __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
  3657
     && __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
  3658
     && __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
  3659
     && __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
  3660
     && __imageBits)
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
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3663
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3664
	  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
  3665
	  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
  3666
	} bitmap;
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
	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
  3669
	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
  3670
	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
  3671
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3672
	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
  3673
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3674
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3675
	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
  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
	    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
  3678
	    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
  3679
	    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
  3680
	    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
  3681
	    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
  3682
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3683
//            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
  3684
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3685
	    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
  3686
	    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
  3687
	    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
  3688
	    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
  3689
	    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
  3690
	    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
  3691
	    /*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
  3692
	    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
  3693
		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
  3694
		    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
  3695
		} else {
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 = 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
  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
		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
  3699
		    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
  3700
		    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
  3701
			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
  3702
			    *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
  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
			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
  3705
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3706
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3707
		    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3710
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3711
	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
  3712
	    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
  3713
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3714
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.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
  3716
	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
  3717
	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
  3718
	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
  3719
	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
  3720
	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
  3721
	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
  3722
	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
  3723
	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
  3724
	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
  3725
	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
  3726
	/*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
  3727
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3728
	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
  3729
	    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
  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
	      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
  3732
	      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
  3733
	      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
  3734
	      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
  3735
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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3738
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3739
	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
  3740
	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
  3741
	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
  3742
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3743
	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
  3744
			      __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
  3745
			      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
  3746
			      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
  3747
			      (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
  3748
			      (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
  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
	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
  3751
			      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
  3752
			      (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
  3753
			      (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
  3754
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3755
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3756
	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
  3757
		      __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
  3758
		      __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
  3759
		      __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
  3760
		      __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
  3761
		      (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
  3762
		      (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
  3763
		      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
  3764
		      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
  3765
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3766
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3767
	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
  3768
	    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
  3769
	}
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
#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
  3772
	_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
  3773
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3774
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3775
	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
  3776
    }
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
fail: ;
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
    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
  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
    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
  3783
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3784
	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
  3785
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3786
	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
  3787
    }
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
#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
  3790
    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
  3791
	_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
  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
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3794
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3795
%}
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
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3798
!
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
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
  3801
    "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
  3802
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3803
    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
  3804
    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
  3805
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3806
"/%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3807
"/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3808
"/    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
  3809
"/        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
  3810
"/        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
  3811
"/        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
  3812
"/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3813
"/        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
  3814
"/            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
  3815
"/            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
  3816
"/        } 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
  3817
"/            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
  3818
"/            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
  3819
"/        } 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
  3820
"/            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
  3821
"/            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
  3822
"/        } 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
  3823
"/            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
  3824
"/            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
  3825
"/        } 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
  3826
"/            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
  3827
"/            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
  3828
"/        }
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
"/        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
  3831
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3832
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3833
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
  3834
    "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
  3835
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3836
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3837
shiftBlue
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3838
    "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
  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
"/    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
  3841
"/        "/ 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
  3842
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3843
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3844
"/    ^ bitsRed
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
     ^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
  3847
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3848
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3849
shiftGreen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3850
    "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
  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
"/    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
  3853
"/        "/ 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
  3854
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3855
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3856
"/    ^ bitsRed
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
     ^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
  3859
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3860
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3861
shiftRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3862
    "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
  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
"/    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
  3865
"/        "/ 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
  3866
"/        ^ bitsPerRGB
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3867
"/    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3868
"/    ^ bitsRed
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3869
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3870
     ^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
  3871
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3872
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3873
sortBlockForColors
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3874
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3875
    ^ [: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
  3876
	    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
  3877
		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
  3878
		    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
  3879
		] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3880
		    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
  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
	    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3883
		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
  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
      ].
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3888
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
  3889
    "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
  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
    |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
  3892
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3893
    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
  3894
    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
  3895
    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
  3896
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3897
    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
  3898
	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
  3899
	^ image
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3900
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3901
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3902
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3905
	"/ 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
  3906
	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
  3907
	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
  3908
	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
  3909
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3910
	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
  3911
	    |newPixel|
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
	    (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
  3914
		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
  3915
		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
  3916
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3917
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3918
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3919
	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
  3920
	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
  3921
	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
  3922
	    "/ 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
  3923
	    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
  3924
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3925
		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
  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:tmpBits
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:oldToNew.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3930
	    tmpBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3931
		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
  3932
		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
  3933
		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
  3934
		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
  3935
		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
  3936
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3937
	    oldBits
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3938
		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
  3939
		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
  3940
		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
  3941
		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
  3942
		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
  3943
	].
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 := 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
  3946
			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
  3947
			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
  3948
			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
  3949
			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
  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
	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
  3952
	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
  3953
	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
  3954
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3955
	^newImage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3956
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3957
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3958
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
  3959
			      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
  3960
			       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
  3961
				  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
  3962
			      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
  3963
			       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
  3964
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3965
    "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
  3966
     (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
  3967
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3968
    | drawableId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3969
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3970
    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
  3971
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3972
%{
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 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
  3974
    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
  3975
    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
  3976
    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
  3977
    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
  3978
    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
  3979
    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
  3980
    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
  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(imageBits)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3983
	__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
  3984
    } 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
  3985
	__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
  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(redVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3989
	__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
  3990
    } 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
  3991
	__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
  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(greenVector)) {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  3995
	__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
  3996
    } 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
  3997
	__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
  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 (__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
  4001
	__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
  4002
    } 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
  4003
	__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
  4004
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4005
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4006
    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
  4007
     && */ __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
  4008
//     && __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
  4009
     && __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
  4010
     && __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
  4011
     && __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
  4012
     && __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
  4013
     && __imageBits)
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
	struct
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4016
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4017
	  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
  4018
	  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
  4019
	} bitmap;
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
	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
  4022
	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
  4023
	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
  4024
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4025
	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
  4026
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4027
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4028
	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
  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
	    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
  4031
	    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
  4032
	    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
  4033
	    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
  4034
	    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
  4035
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4036
//            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
  4037
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4038
	    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
  4039
	    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
  4040
	    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
  4041
	    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
  4042
	    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
  4043
	    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
  4044
	    /*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
  4045
	    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
  4046
		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
  4047
		    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
  4048
		} else {
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 = 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
  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
		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
  4052
		    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
  4053
		    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
  4054
			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
  4055
			    *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
  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
			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
  4058
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4059
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4060
		    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4063
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4064
	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
  4065
	    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
  4066
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4067
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.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
  4069
	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
  4070
	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
  4071
	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
  4072
	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
  4073
	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
  4074
	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
  4075
	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
  4076
	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
  4077
	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
  4078
	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
  4079
	/*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
  4080
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4081
	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
  4082
	    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
  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
	      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
  4085
	      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
  4086
	      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
  4087
	      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
  4088
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4089
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4090
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4091
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4092
	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
  4093
	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
  4094
	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
  4095
	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
  4096
	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
  4097
		      __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
  4098
		      __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
  4099
		      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
  4100
		      __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
  4101
		      (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
  4102
		      (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
  4103
		      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
  4104
		      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
  4105
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4106
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4107
	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
  4108
	    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
  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
	      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
  4111
	      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
  4112
	      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
  4113
	      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
  4114
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4115
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4116
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4117
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4118
	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
  4119
	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
  4120
	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
  4121
	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
  4122
	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
  4123
		      __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
  4124
		      __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
  4125
		      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
  4126
		      __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
  4127
		      (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
  4128
		      (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
  4129
		      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
  4130
		      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
  4131
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4132
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4133
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4134
	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
  4135
			      __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
  4136
			      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
  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
	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
  4143
			      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
  4144
			      (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
  4145
			      (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
  4146
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4147
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4148
	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
  4149
		      __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
  4150
		      __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
  4151
		      __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
  4152
		      __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
  4153
		      (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
  4154
		      (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
  4155
		      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
  4156
		      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
  4157
	);
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4158
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4159
	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
  4160
	    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
  4161
	}
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
#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
  4164
	_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
  4165
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4166
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4167
	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
  4168
    }
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
fail: ;
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
    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
  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
    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
  4175
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4176
	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
  4177
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4178
	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
  4179
    }
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
#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
  4182
    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
  4183
	_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
  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
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4186
*/
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
.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4189
    ^ false
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4190
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4191
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4192
!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
  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
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
  4195
    "a basic method for font allocation; this method allows
3748
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3722 3745
diff changeset
  4196
     any font to be acquired (even those not conforming to
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4197
     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
  4198
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4199
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4200
    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
  4201
    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
  4202
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4203
    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
  4204
	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
  4205
	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
  4206
	    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
  4207
	} 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
  4208
	    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
  4209
	} 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
  4210
	    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
  4211
	} 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
  4212
	    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
  4213
	} 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
  4214
	    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
  4215
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4216
	    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
  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
	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
  4219
	    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
  4220
	    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
  4221
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4222
    }
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
    ^ nil
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4227
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
  4228
    "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
  4229
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4230
    |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
  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 := 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
  4233
    (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
  4234
	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
  4235
	^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4236
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4237
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4238
    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
  4239
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4240
    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
  4241
    info
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4242
      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
  4243
      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
  4244
      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
  4245
      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
  4246
      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
  4247
      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
  4248
      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
  4249
      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
  4250
      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
  4251
      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
  4252
      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
  4253
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4254
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4255
    ^ info
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4256
!
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
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
  4259
    "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
  4260
     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
  4261
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4262
     ^ 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
  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
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 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
  4266
    "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
  4267
     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
  4268
     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
  4269
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4270
    ^ self
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4271
	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
  4272
	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
  4273
	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
  4274
	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
  4275
	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
  4276
	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
  4277
!
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
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
  4280
	    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
  4281
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4282
    "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
  4283
     font."
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
    |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
  4286
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4287
    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
  4288
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4289
    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
  4290
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4291
    "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
  4292
    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
  4293
	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
  4294
	    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
  4295
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4296
	    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
  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
	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
  4299
	    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
  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
	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
  4302
	    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
  4303
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4304
	^ theId
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4305
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4306
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4307
    "/ 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
  4308
    "/ 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
  4309
    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
  4310
	((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
  4311
	 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
  4312
	    |i|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4313
	    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
  4314
	    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
  4315
	    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
  4316
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4317
	    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4321
    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
  4322
    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
  4323
	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
  4324
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4325
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4326
    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
  4327
	    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4328
	    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
  4329
	    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
  4330
	    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
  4331
	    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
  4332
	    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
  4333
	    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
  4334
	    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4335
	    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
  4336
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4337
    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
  4338
	(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
  4339
	    "/ 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
  4340
	    "/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4341
	    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
  4342
		    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4343
		    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
  4344
		    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
  4345
		    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
  4346
		    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
  4347
		    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
  4348
		    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
  4349
		    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4350
		    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
  4351
	    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
  4352
		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
  4353
			getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4354
			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
  4355
			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
  4356
			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
  4357
			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
  4358
			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
  4359
			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
  4360
			registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4361
			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
  4362
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4363
		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
  4364
		    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
  4365
			    getFontWithFoundry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4366
			    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
  4367
			    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
  4368
			    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
  4369
			    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
  4370
			    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
  4371
			    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
  4372
			    registry:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4373
			    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
  4374
		]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4375
	    ]
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
    ^ id
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4379
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4380
    "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
  4381
    "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
  4382
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4383
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4384
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
  4385
	      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
  4386
	      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
  4387
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4388
    "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
  4389
     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
  4390
     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
  4391
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4392
     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
  4393
     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
  4394
     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
  4395
     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
  4396
     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
  4397
     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
  4398
     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
  4399
     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
  4400
     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
  4401
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4402
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4403
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4404
     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
  4405
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4406
	nHeight
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4407
	nWidth
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4408
	nEscapement
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4409
	nOrientation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4410
	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
  4411
	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
  4412
	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
  4413
	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
  4414
	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
  4415
	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
  4416
	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
  4417
	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
  4418
	fdwPitchAndFamily
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4419
		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
  4420
		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
  4421
	lpszFace
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4422
		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
  4423
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4424
      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
  4425
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4426
	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
  4427
	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
  4428
	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
  4429
	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
  4430
	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
  4431
	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
  4432
	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
  4433
	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
  4434
	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
  4435
     "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4436
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4437
    |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
  4438
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4439
    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
  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
    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
  4442
	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
  4443
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4444
	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
  4445
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4446
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4447
    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
  4448
    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
  4449
    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
  4450
    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
  4451
    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
  4452
    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
  4453
    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
  4454
    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
  4455
    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
  4456
    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
  4457
    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
  4458
    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
  4459
    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
  4460
    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
  4461
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4462
/* INITIALIZE */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4463
    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
  4464
    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
  4465
    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
  4466
    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
  4467
    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
  4468
    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
  4469
    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
  4470
    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
  4471
    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
  4472
    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
  4473
    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
  4474
    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
  4475
    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
  4476
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4477
    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
  4478
    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
  4479
	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
  4480
    } 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
  4481
	       || 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
  4482
	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
  4483
    } 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
  4484
	    || (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
  4485
	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
  4486
    } 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
  4487
	    || (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
  4488
	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
  4489
    } 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
  4490
	    || (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
  4491
	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
  4492
    } 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
  4493
	    || (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
  4494
	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
  4495
    } 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
  4496
	    || (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
  4497
	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
  4498
    } 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
  4499
	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
  4500
    } 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
  4501
	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
  4502
    } 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
  4503
	    || (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
  4504
	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
  4505
    } 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
  4506
	    || (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
  4507
	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
  4508
    } 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
  4509
	    || (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
  4510
	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
  4511
    } 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
  4512
	    || (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
  4513
	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
  4514
    } 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
  4515
	    || (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
  4516
	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
  4517
    } 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
  4518
	    || (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
  4519
	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
  4520
    } 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
  4521
	    || (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
  4522
	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
  4523
    } 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
  4524
	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
  4525
    } 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
  4526
	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
  4527
    } 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
  4528
	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
  4529
#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
  4530
    } 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
  4531
	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
  4532
#endif
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
    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
  4536
	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
  4537
	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
  4538
	    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
  4539
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4540
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4541
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4542
    /* 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
  4543
    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
  4544
	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
  4545
	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
  4546
	    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
  4547
	} 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
  4548
	    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
  4549
	} 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
  4550
	    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
  4551
	} 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
  4552
	    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
  4553
	} 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
  4554
	    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
  4555
	} 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
  4556
	    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
  4557
	} 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
  4558
	    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
  4559
	} 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
  4560
	    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
  4561
	} 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
  4562
	    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
  4563
	} 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
  4564
	    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
  4565
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4566
    } 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
  4567
	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
  4568
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4569
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4570
    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
  4571
	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
  4572
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4573
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 (__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
  4575
	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
  4576
	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
  4577
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4578
	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
  4579
	    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
  4580
	    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
  4581
		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
  4582
	} else {
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(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
  4584
		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
  4585
		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
  4586
		    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4589
	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
  4590
	    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
  4591
	    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
  4592
		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
  4593
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4594
	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
  4595
	    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
  4596
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4597
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4598
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4599
    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
  4600
		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
  4601
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4602
    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
  4603
			nWidth,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4604
			nEscapement,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4605
			nOrientation,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4606
			fnWeight,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4607
			fdwItalic,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4608
			fdwUnderline,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4609
			fdwStrikeOut,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4610
			fdwCharSet,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4611
			fdwOutputPrecision,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4612
			fdwClipPrecision,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4613
			fdwQuality,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4614
			fdwPitchAndFamily,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4615
			faceName );
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4616
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4617
    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
  4618
	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
  4619
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4620
    #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
  4621
	__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
  4622
	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
  4623
    #endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4624
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4625
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4628
    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
  4629
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4630
    ^ nil
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4631
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4632
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4633
     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
  4634
			 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
  4635
			 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
  4636
			  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
  4637
			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
  4638
		      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
  4639
			   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
  4640
		       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
  4641
		       encoding:'*'
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4642
    "
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4643
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4644
    "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
  4645
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4646
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4647
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
  4648
    "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
  4649
     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
  4650
      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
  4651
      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
  4652
      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
  4653
      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
  4654
      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
  4655
      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
  4656
      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
  4657
      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
  4658
      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
  4659
      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
  4660
      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
  4661
"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4662
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4663
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4664
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4665
    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
  4666
     && __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
  4667
     && __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
  4668
     && (__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
  4669
	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
  4670
	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
  4671
	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
  4672
	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
  4673
	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
  4674
	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
  4675
	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
  4676
	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
  4677
	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
  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
	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
  4680
	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
  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
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4683
	 * 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
  4684
	 */
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
	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
  4687
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4688
	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
  4689
	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
  4690
	    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
  4691
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4692
#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
  4693
	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
  4694
	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
  4695
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4696
	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
  4697
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4698
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[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
  4700
	__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
  4701
	__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
  4702
	__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
  4703
	__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
  4704
	__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
  4705
	__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
  4706
	__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
  4707
	__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
  4708
	__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
  4709
#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
  4710
	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
  4711
	__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
  4712
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4713
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4714
	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
  4715
		    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
  4716
		    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
  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
	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
  4719
	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
  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
    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
  4722
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4723
!
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
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
  4726
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4727
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4728
    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
  4729
	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
  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
	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
  4732
	   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
  4733
	   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
  4734
	}
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
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4739
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
  4740
    "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
  4741
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4742
%{  /* NOCONTEXT */
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
    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
  4745
     && __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
  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
	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
  4748
	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
  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
	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
  4751
	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
  4752
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4753
	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
  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
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4756
    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
  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
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4761
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
  4762
   | gcId |
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4763
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4764
   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
  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
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4767
    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
  4768
    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
  4769
    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
  4770
    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
  4771
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4772
    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
  4773
     && __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
  4774
     && __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
  4775
     && __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
  4776
	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
  4777
	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
  4778
	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
  4779
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4780
#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
  4781
#       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
  4782
	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
  4783
	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
  4784
	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
  4785
	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
  4786
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4787
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4788
	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
  4789
	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
  4790
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4791
	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
  4792
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4793
	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
  4794
	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
  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
	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
  4797
	    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
  4798
	    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
  4799
		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
  4800
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4801
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4802
	    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
  4803
	    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
  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
	    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
  4806
		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
  4807
    commonWidthChars:
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 (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
  4809
		    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
  4810
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4811
#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
  4812
		    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
  4813
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4814
		    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
  4815
			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
  4816
			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
  4817
		    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4818
			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
  4819
			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
  4820
			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
  4821
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4822
		    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
  4823
		    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
  4824
		    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
  4825
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4826
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4827
#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
  4828
		    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
  4829
			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
  4830
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4831
			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
  4832
			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
  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
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4835
		    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
  4836
		    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
  4837
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4838
		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
  4839
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4840
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4841
	    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
  4842
	    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
  4843
	    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
  4844
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4845
	    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
  4846
		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
  4847
	    }
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
	    /* Unicode */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4850
	    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
  4851
		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
  4852
		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
  4853
		    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
  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
		    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
  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
		    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
  4858
		    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
  4859
		    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
  4860
		}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4861
		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
  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
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4865
%}.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4866
    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
  4867
    ^ 0
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
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
  4871
    "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
  4872
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4873
    ^ 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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4876
!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
  4877
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4878
createDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4879
    "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
  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
    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
  4882
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4883
    "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
  4884
    "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
  4885
    "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
  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
deleteDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4889
    "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
  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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4894
destroy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4895
    "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
  4896
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4897
    |id|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4898
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4899
    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
  4900
    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
  4901
	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
  4902
	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
  4903
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4904
"/    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4907
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
  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
    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
  4910
	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
  4911
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4912
	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
  4913
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
#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
  4916
	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
  4917
	    _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
  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
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4920
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4921
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
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4924
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4925
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4926
executor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4927
    |aCopy|
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
    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
  4930
    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
  4931
    ^ aCopy
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4932
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4933
    "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
  4934
!
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
initialize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4937
    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
  4938
"/    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
  4939
"/    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
  4940
    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
  4941
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4942
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4943
releaseDC
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4944
    "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
  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
    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
  4947
"/    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
  4948
    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
  4949
    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
  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
releaseDeviceFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4953
    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
  4954
	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
  4955
	    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
  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
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4958
    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
  4959
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4960
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4961
!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
  4962
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4963
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
  4964
    "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
  4965
     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
  4966
     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
  4967
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4968
    |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
  4969
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4970
    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
  4971
    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
  4972
    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
  4973
	"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
  4974
	"/            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
  4975
	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
  4976
	(OperatingSystem
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4977
	    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
  4978
	    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
  4979
	    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
  4980
	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
  4981
"/        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
  4982
"/        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
  4983
	#TODO.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4984
    ] ifFalse:[
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 := 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
  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
    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
  4988
	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
  4989
	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
  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
    ^ answer.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4992
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4993
    "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
  4994
    "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
  4995
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  4998
!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
  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
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
  5001
    "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
  5002
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5003
    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
  5004
		      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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5007
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
  5008
    "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
  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
    |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
  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
    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
  5013
	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
  5014
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5015
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5016
    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
  5017
	"
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5018
	 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
  5019
	"
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 := true.
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5021
	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
  5022
	    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
  5023
	] ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5024
	    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
  5025
	    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
  5026
		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
  5027
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5028
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5029
	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
  5030
	    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
  5031
	] ifTrue:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5032
	    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
  5033
	    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
  5034
		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
  5035
	    ]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5036
	].
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
	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
  5039
	    ((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
  5040
		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
  5041
		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
  5042
		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
  5043
	    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5044
	] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5045
	    '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
  5046
	].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5047
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5048
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5049
    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
  5050
	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
  5051
	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
  5052
	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
  5053
	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
  5054
    ] ifFalse:[
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 := x0.
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 := y0.
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 := x1.
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 := y1
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5061
    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
  5062
    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
  5063
    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
  5064
    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
  5065
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5066
    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
  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
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5071
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
  5072
    "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
  5073
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5074
    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
  5075
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5076
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5077
    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
  5078
     && __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
  5079
     && __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
  5080
	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
  5081
	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
  5082
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5085
/*      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
  5086
		    __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
  5087
		    __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
  5088
*/
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
/*        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
  5091
 *        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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5094
	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
  5095
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5096
	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
  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
	 * 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
  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
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5105
	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
  5106
    }
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
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5109
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5110
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
  5111
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5112
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5113
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5114
    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
  5115
	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
  5116
	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
  5117
	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
  5118
	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
  5119
   //     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
  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
	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
  5122
	    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
  5123
	}
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
	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
  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
	    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
  5128
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5129
	} else {
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
	    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
  5132
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5133
	    /* 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
  5134
	    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
  5135
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5136
/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5137
	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
  5138
	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
  5139
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5140
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5141
	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
  5142
	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
  5143
	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
  5144
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5145
   //     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
  5146
   //       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
  5147
   //     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
  5148
   //     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
  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
   //     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
  5151
   //     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
  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 (__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
  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
	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
  5157
*/
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5158
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5159
    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
  5160
%}
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
getPenForMyContext
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5164
    "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
  5165
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5166
    |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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5169
    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
  5170
	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
  5171
	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
  5172
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5173
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5174
    		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
  5175
	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
  5176
	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
  5177
	 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
  5178
	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
  5179
         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
  5180
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5181
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5182
    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
  5183
    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
  5184
    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
  5185
    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
  5186
    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
  5187
    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
  5188
    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
  5189
    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
  5190
    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
  5191
    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
  5192
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5193
    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
  5194
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5195
    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
  5196
/*    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
  5197
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5198
    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
  5199
    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
  5200
    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
  5201
    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
  5202
    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
  5203
    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
  5204
    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
  5205
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5206
    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
  5207
	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
  5208
    } 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
  5209
	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
  5210
    } 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
  5211
	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
  5212
    } 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
  5213
	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
  5214
    } 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
  5215
	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
  5216
    } else
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_SOLID;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5218
    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
  5219
    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
  5220
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5221
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5222
    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
  5223
	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
  5224
    } 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
  5225
	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
  5226
    } 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
  5227
	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
  5228
    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5229
	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
  5230
    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
  5231
    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
  5232
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5233
    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
  5234
	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
  5235
    } 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
  5236
	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
  5237
    } 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
  5238
	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
  5239
    } else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5240
	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
  5241
    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
  5242
    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
  5243
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5244
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5245
    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
  5246
     && (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
  5247
     && (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
  5248
	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
  5249
	    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
  5250
	    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
  5251
	    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
  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
	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
  5254
	    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
  5255
	    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
  5256
	    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
  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
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5259
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5260
    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
  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
    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
  5263
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5264
	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
  5265
	    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
  5266
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5267
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5268
	 * 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
  5269
	 * 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
  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
	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
  5272
	    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
  5273
	    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
  5274
	    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
  5275
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5276
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5277
#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
  5278
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5279
	    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
  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
/*            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
  5282
 *                       lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5283
 *                       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
  5284
 *                       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
  5285
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5286
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5287
	    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
  5288
	    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
  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
#else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5291
	    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
  5292
	    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
  5293
	    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
  5294
#endif
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5295
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5296
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5297
	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
  5298
	{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5299
	    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
  5300
			    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
  5301
			    &Brush,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5302
			    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
  5303
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5304
/*            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
  5305
 *                       lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5306
 *                       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
  5307
 *                       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
  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
	    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
  5310
		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
  5311
	    }
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
    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5314
	/*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5315
	 * 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
  5316
	 * 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
  5317
	 * 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
  5318
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5319
	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
  5320
	    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
  5321
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5322
	    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
  5323
		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
  5324
		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
  5325
		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
  5326
	    } else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5327
		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
  5328
		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
  5329
		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
  5330
		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
  5331
		    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
  5332
		}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5335
	    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
  5336
				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
  5337
				&Brush,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5338
				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
  5339
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5340
/*            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
  5341
 *                           lStyle,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5342
 *                           lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5343
 *                           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
  5344
 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5345
	    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
  5346
		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
  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
	} else {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5349
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5350
	    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
  5351
		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
  5352
	    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5353
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5354
	    /*
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5355
	     * 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
  5356
	     */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5357
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5358
	    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
  5359
			     lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5360
			     fgColor);
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
/*            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
  5363
 *                               (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
  5364
 *                               lw,
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5365
 *                               fgColor));
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
	    // 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
  5369
	    //
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5370
	    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
  5371
	    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
  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
    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
  5376
    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
  5377
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5378
%}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5379
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5380
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5381
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
  5382
				  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
  5383
			       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
  5384
				  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
  5385
			      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
  5386
			       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
  5387
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5388
    "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
  5389
     (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
  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
%{
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5392
    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
  5393
    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
  5394
    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
  5395
    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
  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 (__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
  5398
	__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
  5399
    } 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
  5400
	__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
  5401
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5402
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5403
    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
  5404
     && */  __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
  5405
     && __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
  5406
     && __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
  5407
     && __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
  5408
     && __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
  5409
     && __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
  5410
     && __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
  5411
     && __imageBits)
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5412
     {
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5413
	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
  5414
	struct
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
	  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
  5417
	  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
  5418
	  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
  5419
	  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
  5420
	} bitmap;
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5421
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5422
	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
  5423
	    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
  5424
	    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
  5425
	    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
  5426
	    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
  5427
	    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
  5428
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5429
	    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
  5430
	    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
  5431
	    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
  5432
	    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
  5433
	    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
  5434
	    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
  5435
	    /*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
  5436
	    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
  5437
		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
  5438
		    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
  5439
		} else {
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 = 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
  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
		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
  5443
		    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
  5444
		    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
  5445
			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
  5446
			    *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
  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
			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
  5449
		    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5450
		} else
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5451
		    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
  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
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5454
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 (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
  5456
	    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
  5457
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5458
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.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
  5460
	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
  5461
	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
  5462
	    /*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
  5463
	    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
  5464
	    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
  5465
	    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
  5466
	    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
  5467
	} 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
  5468
	    /*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
  5469
	    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
  5470
	    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
  5471
	    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
  5472
	    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
  5473
	    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
  5474
	    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
  5475
	    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
  5476
	    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
  5477
	}
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.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
  5479
	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
  5480
	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
  5481
	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
  5482
	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
  5483
	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
  5484
	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
  5485
	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
  5486
	/*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
  5487
	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
  5488
			      __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
  5489
			      __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
  5490
			      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
  5491
			      (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
  5492
			      (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
  5493
	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
  5494
	    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
  5495
	}
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5496
	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
  5497
    }
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
fail: ;
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
    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
  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
    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
  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
	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
  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
	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
  5508
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5509
%}
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
    ^ false
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5514
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
  5515
    "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
  5516
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5517
    |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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5519
    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
  5520
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5521
%{  /* NOCONTEXT */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5522
    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
  5523
     && __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
  5524
     && __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
  5525
     && __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
  5526
	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
  5527
	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
  5528
	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
  5529
	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
  5530
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5533
/*      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
  5534
		    __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
  5535
		    __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
  5536
*/
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
/*        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
  5539
 *        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
  5540
 */
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
	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
  5543
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5544
	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
  5545
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5546
	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
  5547
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
	 * 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
  5550
	 */
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5551
	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
  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
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5556
	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
  5557
    }
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5558
%}
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5561
!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
  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
endPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5564
    "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
  5565
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5566
    (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
  5567
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5570
    "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
  5571
    "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
  5572
    "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
  5573
!
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
endPrintJobWithoutRelease
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5576
    "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
  5577
     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
  5578
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5579
    |result|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5580
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5581
    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
  5582
    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
  5583
    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
  5584
    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
  5585
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5586
    "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
  5587
    "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
  5588
    "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
  5589
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5590
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5591
getSupportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5592
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 info |
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
    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
  5596
    (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
  5597
	ifTrue: [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5598
	    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
  5599
"/            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
  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
	ifFalse: [
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5602
	    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
  5603
		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
  5604
		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
  5605
    ].
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
    ^retVal
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5608
!
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
startPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5611
    "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
  5612
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5613
    (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
  5614
	^ 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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5617
    "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
  5618
    "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
  5619
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5622
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
  5623
    "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
  5624
     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
  5625
     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
  5626
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5627
    |docInfoStruct nameAddress fileNameAddress|
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5628
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5629
    self gcId isNil ifTrue:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5630
        self buildPrinter
3457
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
    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
  5633
    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
  5634
    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
  5635
    aFileName isNil ifFalse:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5636
        fileNameAddress := aFileName pathName asExternalBytes unprotectFromGC
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5637
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5638
    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
  5639
    docInfoStruct
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5640
        cbSize:docInfoStruct sizeInBytes;
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5641
        lpszDocName:nameAddress address.
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5642
    fileNameAddress isNil ifFalse:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5643
        docInfoStruct lpszOutput:fileNameAddress address
3457
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
    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
  5646
    jobid > 0 ifFalse:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5647
        jobid = -1 ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5648
            abort := true.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5649
            ^ nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5650
        ].
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5651
"/        ^ self error
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5652
        OpenError raiseErrorString:'Cannot create printer job'.
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5653
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5654
    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
  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
    "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
  5657
    "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
  5658
    "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
  5659
    "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
  5660
! !
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
!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
  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
hasGrayscales
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5665
    "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
  5666
     (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
  5667
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5668
    ^ true
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5671
isOpen
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5672
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5673
    ^ 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
  5674
!
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
isPersistentInSnapshot
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5677
    "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
  5678
     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
  5679
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5680
    ^ false
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
supportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5684
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5685
    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
  5686
    ^supportsColor
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5687
!
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
supportsGraphics
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5690
    ^(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
  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
    "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
  5693
    "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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5696
supportsVariableHeightFonts
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5697
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5698
    ^ false
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
!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
  5702
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5703
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
  5704
    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
  5705
!
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
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
  5708
    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
  5709
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5710
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5711
!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
  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
documentation
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
    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
  5716
    '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
  5717
    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
  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
    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
  5720
"
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5723
examples
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
										[exBegin]
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 font|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5727
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 := 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
  5729
    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
  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
    [
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 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
  5733
	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
  5734
	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
  5735
	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
  5736
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5737
	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
  5738
	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
  5739
	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
  5740
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5741
	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
  5742
	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
  5743
    ] ensure:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5744
	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
  5745
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5746
										[exEnd]
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5747
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5748
"
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5751
!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
  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
bottomMargin
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 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
  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
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5759
extent
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5760
    ^ width @ height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5761
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5762
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5763
height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5764
    ^ height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5765
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5766
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5767
leftMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5768
    "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
  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
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5771
!
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
rightMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5774
    "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
  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
    ^ 50
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5777
!
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
topMargin
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5780
    "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
  5781
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5782
    ^ 50
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5783
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5784
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5785
width
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5786
    ^ width
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5787
! !
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
!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
  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
pageCounter
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5792
    "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
  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
    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
  5795
    ^ 1
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5798
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
  5799
    "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
  5800
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5801
    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
  5802
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5803
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5804
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
  5805
    "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
  5806
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5807
    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
  5808
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5809
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5810
!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
  5811
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5812
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
  5813
    |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
  5814
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5815
    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
  5816
    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
  5817
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5818
    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
  5819
    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
  5820
    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
  5821
    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
  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
    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
  5824
	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
  5825
	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
  5826
	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
  5827
	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
  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
    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
  5830
!
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
scale
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5833
    "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
  5834
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5835
    ^ 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
  5836
!
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
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
  5839
    "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
  5840
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5841
    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
  5842
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5843
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5844
scale:scale translation:aPoint
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5845
    self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5846
        translation:aPoint;
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5847
        scale:scale.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5848
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  5849
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5850
transformation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5851
    "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
  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
    ^ 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
  5854
			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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5857
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
  5858
    "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
  5859
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5860
    |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
  5861
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5862
    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
  5863
	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
  5864
	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
  5865
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5866
    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
  5867
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5870
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
  5871
    "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
  5872
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5873
    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
  5874
    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
  5875
!
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
translation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5878
    "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
  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
    |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
  5881
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5882
    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
  5883
    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
  5884
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5885
    ^ 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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5888
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
  5889
    "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
  5890
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5891
    |trans|
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
    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
  5894
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5895
    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
  5896
	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
  5897
    ].
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
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5902
!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
  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
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
  5905
    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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5908
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
  5909
    |end|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5910
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5911
    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
  5912
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5913
    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
  5914
	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
  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
!
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
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
  5919
    "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
  5920
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5921
    |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
  5922
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5923
    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
  5924
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 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
  5926
	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
  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
    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
  5929
    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
  5930
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5931
    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
  5932
    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
  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
    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
  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
    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
  5937
		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
  5938
		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
  5939
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5940
    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
  5941
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5942
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5943
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
  5944
    |end|
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
    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
  5947
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5948
    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
  5949
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5953
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
  5954
    "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
  5955
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5956
    |angle|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5957
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5958
    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
  5959
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5960
    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
  5961
	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
  5962
    ] ifFalse:[
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5963
	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
  5964
	    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
  5965
	    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
  5966
	    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
  5967
		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
  5968
	    ]
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
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5971
    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
  5972
	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
  5973
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5974
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5975
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5976
!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
  5977
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5978
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
  5979
    "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
  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
    |metrics|
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
    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
  5984
    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
  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
    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
  5987
	    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
  5988
	    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
  5989
	    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
  5990
	    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
  5991
	    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
  5992
	    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
  5993
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5994
    ^ metrics
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5995
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5996
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  5997
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
  5998
	      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
  5999
	      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
  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
    "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
  6002
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6003
    |psize|
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
    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
  6006
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6007
    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
  6008
	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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6011
    ^ 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
  6012
	      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
  6013
	      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
  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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6016
titleFont
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6017
    "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
  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
    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
  6020
	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
  6021
	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
  6022
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6023
    ^ titleFont
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6026
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
  6027
    "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
  6028
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6029
    (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
  6030
	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
  6031
    ].
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6034
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
  6035
    "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
  6036
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6037
    |w|
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
    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
  6040
    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
  6041
    ^ w
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6042
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6043
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6044
!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
  6045
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6046
close
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6047
    "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
  6048
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6049
    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
  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
initExtent
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6053
    "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
  6054
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6055
    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
  6056
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6057
    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
  6058
    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
  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
    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
  6061
    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
  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
    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
  6064
!
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
initTransformation
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6067
    |margin|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6068
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6069
    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
  6070
	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
  6071
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6072
	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
  6073
					    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
  6074
    ].
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
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6077
initialize
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6078
    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
  6079
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6080
    device := nil.      "super initialize did set it to Screen current"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6081
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6082
    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
  6083
    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
  6084
    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
  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
    Language == #de ifTrue:[ pageNumberFormat := 'Seite %1' ]
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6087
                   ifFalse:[ pageNumberFormat := 'page %1'  ].
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6088
! !
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
!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
  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
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
  6093
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6094
    |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
  6095
3722
6d604bcf36f3 Post-merge fix
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3720
diff changeset
  6096
    oldClip := self clipingRectangleOrNil.
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6097
    oldClip notNil ifTrue:[ self deviceClippingBounds:nil ].
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6098
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6099
    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
  6100
    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
  6101
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6102
    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
  6103
    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
  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
    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
  6106
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6107
    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
  6108
    oldFont notNil ifTrue:[ self font:oldFont ].
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6109
    oldClip notNil ifTrue:[ self deviceClippingBounds:oldClip ].
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6110
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6111
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6112
endPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6113
    "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
  6114
     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
  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
    |s|
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6117
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6118
    needsEndOfPage ifFalse:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6119
        ^ self
3457
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
    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
  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
    printPageNumbers == true ifTrue:[
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6124
        self displayTitleDo:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6125
            self displayString:title
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6126
                 x:(self extent x - (self font widthOf:title)) // 2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6127
                 y:(self extent y + (self font ascent)).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6128
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6129
            s := pageNumberFormat bindWith:pageCounter.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6130
            self displayString:s
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6131
			     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
  6132
			     y:(self extent y + (self font ascent)).
3720
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3528 3719
diff changeset
  6133
        ]
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6134
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6135
    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
  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
startPage
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6139
    "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
  6140
     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
  6141
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6142
    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
  6143
	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
  6144
    ].
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6145
    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
  6146
    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
  6147
    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
  6148
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6149
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6150
!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
  6151
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6152
pixelPerInch
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6153
    ^ 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
  6154
	    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
  6155
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6156
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6157
resolution
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6158
    ^ 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
  6159
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6160
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6161
!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
  6162
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6163
version
3528
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
  6164
    ^ '$Header$'
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6165
!
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6166
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6167
version_CVS
3528
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3478 3526
diff changeset
  6168
    ^ '$Header$'
3457
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6169
! !
dcc643202507 Forked branch jv (because delegated CG requires some changes to WinPrinterContext)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3190
diff changeset
  6170