Use some wxX11 files (currently pen.cpp and brush.cpp) in wxMotif.

Add src/x11 to VPATH in configure, and add a new flag to filelist.txt
indicating a file used in wxMotif but not in wxMotif directory.
  Modifed VMS makefiles, too (should be checked by someone with VMS,
though).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon
2003-02-20 18:20:47 +00:00
parent e7370dac93
commit 69c4481222
23 changed files with 401 additions and 586 deletions

2
configure vendored
View File

@@ -15615,7 +15615,7 @@ rm -f conftest*
fi fi
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo" TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11"
TOOLKIT=MOTIF TOOLKIT=MOTIF
GUIDIST=MOTIF_DIST GUIDIST=MOTIF_DIST
fi fi

View File

@@ -2541,7 +2541,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
fi fi
GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11" GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo" TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11"
TOOLKIT=MOTIF TOOLKIT=MOTIF
GUIDIST=MOTIF_DIST GUIDIST=MOTIF_DIST
fi fi

View File

@@ -141,6 +141,8 @@ motif : [.include.wx]setup.h
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1) $(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [-.motif] set default [-.motif]
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1) $(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [-.x11]
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [--.demos.bombs] set default [--.demos.bombs]
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1) $(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [--.samples.calendar] set default [--.samples.calendar]

View File

@@ -7,8 +7,28 @@
#! Version: $Id$ #! Version: $Id$
#!############################################################################# #!#############################################################################
#${ #${
use lib './lib';
use wxFileInfo;
open(FILELIST, "filelist.txt") or die "Can't open filelist file: $!\n"; open(FILELIST, "filelist.txt") or die "Can't open filelist file: $!\n";
#! maps file types to array names, for example an entry of the form
#! FooH => 'wxXYZ' means that all files with type "FooH" will be
#! added to an array named @wxXYZ
my %type_2_array = (
Common => "wxCommon",
Generic => "wxGeneric",
GenericH => "wxGenericInclude",
HTML => "wxHtml",
HtmlH => "wxHtmlInclude",
Motif => "wxMotif",
MotifH => "wxMotifInclude",
ProtoH => "wxProtocolInclude",
Unix => "wxUnix",
UnixH => "wxUnixInclude",
WXH => "wxWxInclude",
);
line: while ( defined($_ = <FILELIST>) ) { line: while ( defined($_ = <FILELIST>) ) {
chomp; chomp;
@@ -36,6 +56,10 @@
print STDERR "File $filename: type '$filetype', flags '$fileflags'\n"; print STDERR "File $filename: type '$filetype', flags '$fileflags'\n";
} }
#! save all information in @wxALL
my $fileinfo = new wxFileInfo( $filename, $filetype, $fileflags );
push @wxALL, $fileinfo;
#! this is a bit stupid but all templates are written using the old #! this is a bit stupid but all templates are written using the old
#! single letter flags which became so unreadable that I decided to #! single letter flags which became so unreadable that I decided to
#! replace them with more readable strings, but it was easier to do #! replace them with more readable strings, but it was easier to do

View File

@@ -64,6 +64,7 @@
# NotUniv Not required for the wxUniversal # NotUniv Not required for the wxUniversal
# LowLevel Low level GUI toolkit file, used by wxUniversal as well # LowLevel Low level GUI toolkit file, used by wxUniversal as well
# Theme implements a wxUniv theme # Theme implements a wxUniv theme
# Motif used by Motif, even if in another port's directory
############################################################################### ###############################################################################
# File name Type Flags # File name Type Flags
@@ -235,7 +236,6 @@ textbuf.cpp Common Base
textcmn.cpp Common textcmn.cpp Common
textfile.cpp Common Base textfile.cpp Common Base
timercmn.cpp Common Base timercmn.cpp Common Base
toplvcmn.cpp Common
tokenzr.cpp Common Base tokenzr.cpp Common Base
treebase.cpp Common treebase.cpp Common
txtstrm.cpp Common Base txtstrm.cpp Common Base
@@ -567,7 +567,7 @@ accel.cpp Motif
app.cpp Motif app.cpp Motif
bitmap.cpp Motif bitmap.cpp Motif
bmpbuttn.cpp Motif bmpbuttn.cpp Motif
brush.cpp Motif # brush.cpp Motif
button.cpp Motif button.cpp Motif
checkbox.cpp Motif checkbox.cpp Motif
checklst.cpp Motif checklst.cpp Motif
@@ -602,7 +602,7 @@ menuitem.cpp Motif
minifram.cpp Motif minifram.cpp Motif
msgdlg.cpp Motif msgdlg.cpp Motif
palette.cpp Motif palette.cpp Motif
pen.cpp Motif # pen.cpp Motif
radiobox.cpp Motif radiobox.cpp Motif
radiobut.cpp Motif radiobut.cpp Motif
region.cpp Motif region.cpp Motif
@@ -624,7 +624,7 @@ gsockx11.c X11 Socket
nanox.c X11 nanox.c X11
app.cpp X11 app.cpp X11
bitmap.cpp X11 bitmap.cpp X11
brush.cpp X11 brush.cpp X11 Motif
clipbrd.cpp X11 clipbrd.cpp X11
colour.cpp X11 colour.cpp X11
cursor.cpp X11 cursor.cpp X11
@@ -644,7 +644,7 @@ joystick.cpp X11
main.cpp X11 main.cpp X11
minifram.cpp X11 minifram.cpp X11
palette.cpp X11 palette.cpp X11
pen.cpp X11 pen.cpp X11 Motif
popupwin.cpp X11 popupwin.cpp X11
region.cpp X11 region.cpp X11
reparent.cpp X11 reparent.cpp X11
@@ -861,7 +861,6 @@ iconbndl.h WXH
image.h WXH image.h WXH
imaggif.h WXH imaggif.h WXH
imagiff.h WXH imagiff.h WXH
imagxpm.h WXH
imagbmp.h WXH imagbmp.h WXH
imagpng.h WXH imagpng.h WXH
imagpcx.h WXH imagpcx.h WXH
@@ -1148,7 +1147,7 @@ accel.h MotifH
app.h MotifH app.h MotifH
bitmap.h MotifH bitmap.h MotifH
bmpbuttn.h MotifH bmpbuttn.h MotifH
brush.h MotifH # brush.h MotifH
button.h MotifH button.h MotifH
checkbox.h MotifH checkbox.h MotifH
checklst.h MotifH checklst.h MotifH
@@ -1185,7 +1184,7 @@ metafile.h MotifH
minifram.h MotifH minifram.h MotifH
msgdlg.h MotifH msgdlg.h MotifH
palette.h MotifH palette.h MotifH
pen.h MotifH # pen.h MotifH
print.h MotifH print.h MotifH
printdlg.h MotifH printdlg.h MotifH
private.h MotifH private.h MotifH
@@ -1208,7 +1207,7 @@ window.h MotifH
app.h X11H app.h X11H
bitmap.h X11H bitmap.h X11H
brush.h X11H brush.h X11H Motif
clipbrd.h X11H clipbrd.h X11H
colour.h X11H colour.h X11H
cursor.h X11H cursor.h X11H
@@ -1228,7 +1227,7 @@ icon.h X11H
joystick.h X11H joystick.h X11H
minifram.h X11H minifram.h X11H
palette.h X11H palette.h X11H
pen.h X11H pen.h X11H Motif
print.h X11H print.h X11H
private.h X11H private.h X11H
region.h X11H region.h X11H

View File

@@ -0,0 +1,90 @@
package wxFileInfo;
=head1 NAME
wxFileInfo
=head1 SYNOPSIS
use wxFileInfo;
my $info = new wxFileInfo( $filename, $filetype, $fileflags );
my $info2 = new wxFileInfo( 'mdig.cpp', 'Generic',
'NotWin32,NotGTK,NotMac' );
$f = $info->filename;
$t = $info->filetype;
$flags = $info->fileflags;
$bool = $info->is_header;
$bool = $info->is_source;
$file = $info->object_file;
$file = $info->source_file;
$bool = $info->has_flag( 'NotX' );
=cut
use strict;
sub new {
my $ref = shift;
my $class = ref( $ref ) || $ref;
my $self = bless {}, $class;
my( $filename, $filetype, $fileflags ) = @_;
$fileflags =~ tr/ \t//d;
@{$self}{'filename', 'filetype'} = ( $filename, $filetype );
$self->{fileflags} = [ split /,/, $fileflags ];
return $self;
}
sub filename { $_[0]->{filename} }
sub filetype { $_[0]->{filetype} }
sub fileflags { $_[0]->{fileflags} }
sub is_header { scalar( $_[0]->{filename} =~ m/\.h$/i ) }
sub is_source { !scalar( $_[0]->{filename} =~ m/\.h$/i ) }
sub object_file {
my $self = shift;
my $obj = $self->{filename};
$obj =~ s/cp?p?$/o/i; # PORTABILITY
return $obj;
}
my %src_prefix = ( Common => 'common/',
Generic => 'generic/',
MSW => 'msw/',
Mac => 'mac/',
Motif => 'motif/',
GTK => 'gtk/',
Univ => 'univ/',
X11 => 'x11/',
HTML => 'html/',
Unix => 'unix/',
WXH => '',
ProtoH => 'protocol/',
HtmlH => 'html/',
MotifH => 'motif/',
X11H => 'x11/',
GenericH => 'generic/',
UnixH => 'unix/',
);
sub source_file {
my $self = shift;
my $type = $self->filetype;
die "Unknown file type '$type'" unless exists $src_prefix{$type};
return $src_prefix{$type} . $self->filename; # PORTABILITY
}
sub has_flag {
my( $self, $flag ) = @_;
$flag = lc( $flag );
return grep { lc( $_ ) eq $flag } @{$self->{fileflags}};
}
1;

View File

@@ -0,0 +1,148 @@
package wxFileList;
=head1 NAME
wxFileList
=head1 SYNOPSIS
use wxFileList qw(grep_filetype grep_fileflag grep_not_fileflag
grep_source grep_header sort_files make_arrays);
# shorthand for
# @wxGeneric = sort_files grep_filetype 'Generic', @wxALL;
# @wxGenericInclude = sort_files grep_filetype 'GenericH', @wxALL;
make_arrays( 'wxGeneric', 'wxGenericInclude' );
=head1 METHODS
=cut
use strict;
# alias wxALL from main
use vars qw(@wxALL);
*wxALL = \@main::wxALL;
use base 'Exporter';
use vars qw(@EXPORT_OK %EXPORT_TAGS);
@EXPORT_OK = qw(grep_filetype grep_fileflag grep_not_fileflag
grep_source grep_header sort_files make_arrays);
%EXPORT_TAGS = ( 'default' => [ qw(grep_filetype grep_fileflag grep_source
grep_not_fileflag grep_header
sort_files) ],
);
my %type_2_array = (
Common => "wxCommon",
Generic => "wxGeneric",
GenericH => "wxGenericInclude",
HTML => "wxHtml",
HtmlH => "wxHtmlInclude",
Motif => "wxMotif",
MotifH => "wxMotifInclude",
ProtoH => "wxProtocolInclude",
Unix => "wxUnix",
UnixH => "wxUnixInclude",
WXH => "wxWxInclude",
);
# inverse mapping
my %array_2_type = map { ( $type_2_array{$_}, $_ ) } keys %type_2_array;
sub _sort {
sort { $a->filename cmp $b->filename } @_;
}
=head2 grep_filetype
my @files = grep_filetype 'Type', @all_files;
Returns files in C<@all_files> whose file type matches C<'Type'>.
=cut
sub grep_filetype {
my $filetype = lc( shift );
return _sort grep { $filetype eq lc( $_->filetype ) } @_;
}
=head2 grep_fileflag
=head2 grep_not_fileflag
my @files = grep_fileflag 'NotX', @all_files;
my @files2 = grep_not_fileflag 'NotX', @all_files;
Return files in C<@all_files> [not] having the given file flag.
=cut
sub grep_fileflag {
my $fileflag = shift;
return _sort grep { $_->has_flag( $fileflag ) } @_;
}
sub grep_not_fileflag {
my $fileflag = shift;
return _sort grep { !( $_->has_flag( $fileflag ) ) } @_;
}
=head2 grep_header
=head2 grep_source
my @headers = grep_header @all_files;
my @sources = grep_source @all_files;
Return header/source files contained in C<@all_files>.
=cut
sub grep_header {
return _sort grep { $_->is_header } @_;
}
sub grep_source {
return _sort grep { $_->is_source } @_;
}
=head2 sort_files
my @sorted_files = sort_files @files;
Sorts files by file name.
=cut
sub sort_files {
return sort { $a->{filename} cmp $b->{filename} } @_;
}
=head2 make_arrays
See SYNOPSIS.
=cut
sub make_arrays {
my( $package ) = caller;
foreach my $array ( @_ ) {
my $type = $array_2_type{$array};
unless( $type ) {
require Carp;
croak( "Invalid array name '$array'" );
}
no strict 'refs';
@{"${package}::${array}"} = sort_files grep_filetype $type, @wxALL;
}
}
1;

View File

@@ -1,83 +1,64 @@
#!################################################################################ #!#############################################################################
#! File: motif.t #! File: motif.t
#! Purpose: tmake template file from which src/motif/files.lst containing the #! Purpose: tmake template file from which src/motif/files.lst containing the
#! list of files for wxMotif library is generated by tmake #! list of files for wxMotif library is generated by tmake
#! Author: Vadim Zeitlin #! Author: Vadim Zeitlin
#! Created: 28.01.00 #! Created: 28.01.00
#! Version: $Id$ #! Version: $Id$
#!################################################################################ #!#############################################################################
#${ #${
use lib './lib';
use wxFileList qw(:default make_arrays);
#! include the code which parses filelist.txt file and initializes #! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric, %wxHtml, %wxUNIX, %wxMOTIF, %wxMOTIF and #! %wxCommon, %wxGeneric, %wxHtml, %wxUNIX, %wxMOTIF, %wxMOTIF and
#! %wxOS2PM hashes. #! %wxOS2PM hashes.
IncludeTemplate("filelist.t"); IncludeTemplate("filelist.t");
make_arrays( 'wxGeneric', 'wxCommon', 'wxMotif',
'wxUnix', 'wxHtml',
'wxWxInclude', 'wxMotifInclude', 'wxGenericInclude',
'wxUnixInclude', 'wxHtmlInclude', 'wxProtocolInclude' );
#! find all our sources #! find all our sources
$project{"GUIOBJS"} .= "xmcombo.o "; $project{"GUIOBJS"} .= "xmcombo.o ";
foreach $file (sort keys %wxGeneric) { my @generic = grep_not_fileflag 'NotX', @wxGeneric;
next if $wxGeneric{$file} =~ /\bNotX\b/; my @common = grep_not_fileflag 'NotX', @wxCommon;
my @motif = ( @wxMotif,
grep_source( grep_fileflag 'Motif', @wxALL ) );
($fileobj = $file) =~ s/cp?p?$/\o/; foreach my $file ( @generic ) {
$project{"GENERICOBJS"} .= $file->object_file . " ";
$project{"MOTIF_SOURCES"} .= "generic/" . $file . " ";
$project{"GENERICOBJS"} .= $fileobj . " ";
} }
foreach $file (sort keys %wxCommon) { foreach my $file ( @common ) {
next if $wxCommon{$file} =~ /\bNotX\b/; $project{"COMMONOBJS"} .= $file->object_file . " ";
($fileobj = $file) =~ s/cp?p?$/\o/;
$project{"MOTIF_SOURCES"} .= "common/" . $file . " ";
$project{"COMMONOBJS"} .= $fileobj . " ";
} }
foreach $file (sort keys %wxMOTIF) { foreach my $file ( @motif ) {
($fileobj = $file) =~ s/cp?p?$/\o/; $project{"GUIOBJS"} .= $file->object_file . " ";
$project{"MOTIF_SOURCES"} .= "motif/" . $file . " ";
$project{"GUIOBJS"} .= $fileobj . " ";
} }
foreach $file (sort keys %wxUNIX) { foreach my $file ( @wxUnix ) {
($fileobj = $file) =~ s/cp?p?$/\o/; $project{"UNIXOBJS"} .= $file->object_file . " ";
$project{"MOTIF_SOURCES"} .= "unix/" . $file . " ";
$project{"UNIXOBJS"} .= $fileobj . " ";
} }
foreach $file (sort keys %wxHTML) { foreach my $file ( @wxHtml ) {
($fileobj = $file) =~ s/cp?p?$/\o/; $project{"HTMLOBJS"} .= $file->object_file . " ";
$project{"MOTIF_SOURCES"} .= "html/" . $file . " ";
$project{"HTMLOBJS"} .= $fileobj . " ";
} }
foreach my $file ( @generic, @common, @motif,
@wxUnix, @wxHtml ) {
$project{"MOTIF_SOURCES"} .= $file->source_file . " ";
}
#! find all our headers #! find all our headers
foreach $file (sort keys %wxWXINCLUDE) { foreach my $file ( grep_not_fileflag( 'NotX', @wxWxInclude ),
next if $wxWXINCLUDE{$file} =~ /\bNotX\b/; @wxMotifInclude, @wxGenericInclude, @wxUnixInclude,
@wxHtmlInclude, @wxProtocolInclude,
$project{"MOTIF_HEADERS"} .= $file . " " grep_header( grep_fileflag( 'Motif', @wxALL ) ) ) {
} $project{MOTIF_HEADERS} .= $file->source_file . " ";
foreach $file (sort keys %wxMOTIFINCLUDE) {
$project{"MOTIF_HEADERS"} .= "motif/" . $file . " "
}
foreach $file (sort keys %wxGENERICINCLUDE) {
$project{"MOTIF_HEADERS"} .= "generic/" . $file . " "
}
foreach $file (sort keys %wxUNIXINCLUDE) {
$project{"MOTIF_HEADERS"} .= "unix/" . $file . " "
}
foreach $file (sort keys %wxHTMLINCLUDE) {
$project{"MOTIF_HEADERS"} .= "html/" . $file . " "
}
foreach $file (sort keys %wxPROTOCOLINCLUDE) {
$project{"MOTIF_HEADERS"} .= "protocol/" . $file . " "
} }
#$} #$}
# This file was automatically generated by tmake # This file was automatically generated by tmake

View File

@@ -4,7 +4,7 @@
#if defined(__WXMSW__) #if defined(__WXMSW__)
#include "wx/msw/brush.h" #include "wx/msw/brush.h"
#elif defined(__WXMOTIF__) #elif defined(__WXMOTIF__)
#include "wx/motif/brush.h" #include "wx/x11/brush.h"
#elif defined(__WXGTK__) #elif defined(__WXGTK__)
#include "wx/gtk/brush.h" #include "wx/gtk/brush.h"
#elif defined(__WXX11__) #elif defined(__WXX11__)

View File

@@ -1,80 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: brush.h
// Purpose: wxBrush class
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_BRUSH_H_
#define _WX_BRUSH_H_
#ifdef __GNUG__
#pragma interface "brush.h"
#endif
#include "wx/gdicmn.h"
#include "wx/gdiobj.h"
#include "wx/bitmap.h"
#include "wx/colour.h"
class WXDLLEXPORT wxBrush;
class WXDLLEXPORT wxBrushRefData: public wxGDIRefData
{
friend class WXDLLEXPORT wxBrush;
public:
wxBrushRefData();
wxBrushRefData(const wxBrushRefData& data);
~wxBrushRefData();
protected:
int m_style;
wxBitmap m_stipple ;
wxColour m_colour;
};
#define M_BRUSHDATA ((wxBrushRefData *)m_refData)
// Brush
class WXDLLEXPORT wxBrush: public wxGDIObject
{
DECLARE_DYNAMIC_CLASS(wxBrush)
public:
wxBrush();
wxBrush(const wxColour& col, int style);
wxBrush(const wxBitmap& stipple);
inline wxBrush(const wxBrush& brush) { Ref(brush); }
~wxBrush();
virtual void SetColour(const wxColour& col) ;
virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ;
virtual void SetStyle(int style) ;
virtual void SetStipple(const wxBitmap& stipple) ;
inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; }
inline bool operator == (const wxBrush& brush) const { return m_refData == brush.m_refData; }
inline bool operator != (const wxBrush& brush) const { return m_refData != brush.m_refData; }
inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); };
inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); };
inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); };
virtual bool Ok() const { return (m_refData != NULL) ; }
// Implementation
// Useful helper: create the brush resource
bool RealizeResource();
// When setting properties, we must make sure we're not changing
// another object
void Unshare();
};
#endif
// _WX_BRUSH_H_

View File

@@ -157,7 +157,7 @@ protected:
int m_currentPenJoin ; int m_currentPenJoin ;
int m_currentPenCap ; int m_currentPenCap ;
int m_currentPenDashCount ; int m_currentPenDashCount ;
wxMOTIFDash* m_currentPenDash ; wxX11Dash* m_currentPenDash ;
wxBitmap m_currentStipple ; wxBitmap m_currentStipple ;
int m_currentStyle ; int m_currentStyle ;
int m_currentFill ; int m_currentFill ;

View File

@@ -1,102 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: pen.h
// Purpose: wxPen class
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PEN_H_
#define _WX_PEN_H_
#ifdef __GNUG__
#pragma interface "pen.h"
#endif
#include "wx/gdiobj.h"
#include "wx/colour.h"
#include "wx/bitmap.h"
typedef char wxMOTIFDash;
class WXDLLEXPORT wxPen;
class WXDLLEXPORT wxPenRefData: public wxGDIRefData
{
friend class WXDLLEXPORT wxPen;
public:
wxPenRefData();
wxPenRefData(const wxPenRefData& data);
~wxPenRefData();
protected:
int m_width;
int m_style;
int m_join ;
int m_cap ;
wxBitmap m_stipple ;
int m_nbDash ;
wxMOTIFDash *m_dash ;
wxColour m_colour;
};
#define M_PENDATA ((wxPenRefData *)m_refData)
// Pen
class WXDLLEXPORT wxPen: public wxGDIObject
{
DECLARE_DYNAMIC_CLASS(wxPen)
public:
wxPen();
wxPen(const wxColour& col, int width, int style);
wxPen(const wxBitmap& stipple, int width);
inline wxPen(const wxPen& pen) { Ref(pen); }
~wxPen();
inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; }
inline bool operator == (const wxPen& pen) const { return m_refData == pen.m_refData; }
inline bool operator != (const wxPen& pen) const { return m_refData != pen.m_refData; }
virtual bool Ok() const { return (m_refData != NULL) ; }
// Override in order to recreate the pen
void SetColour(const wxColour& col) ;
void SetColour(unsigned char r, unsigned char g, unsigned char b) ;
void SetWidth(int width) ;
void SetStyle(int style) ;
void SetStipple(const wxBitmap& stipple) ;
void SetDashes(int nb_dashes, const wxDash *dash) ;
void SetJoin(int join) ;
void SetCap(int cap) ;
inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); };
inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); };
inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); };
inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); };
inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); };
inline int GetDashes(wxDash **ptr) const
{
*ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL);
return (M_PENDATA ? M_PENDATA->m_nbDash : 0);
}
inline int GetDashCount() const { return (M_PENDATA->m_nbDash); }
inline wxDash* GetDash() const { return (wxDash*)M_PENDATA->m_dash; }
inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); };
// Implementation
// Useful helper: create the brush resource
bool RealizeResource();
// When setting properties, we must make sure we're not changing
// another object
void Unshare();
};
#endif
// _WX_PEN_H_

View File

@@ -4,7 +4,7 @@
#if defined(__WXMSW__) #if defined(__WXMSW__)
#include "wx/msw/pen.h" #include "wx/msw/pen.h"
#elif defined(__WXMOTIF__) #elif defined(__WXMOTIF__)
#include "wx/motif/pen.h" #include "wx/x11/pen.h"
#elif defined(__WXGTK__) #elif defined(__WXGTK__)
#include "wx/gtk/pen.h" #include "wx/gtk/pen.h"
#elif defined(__WXX11__) #elif defined(__WXX11__)

View File

@@ -16,15 +16,15 @@
#pragma interface "brush.h" #pragma interface "brush.h"
#endif #endif
#include "wx/gdicmn.h"
#include "wx/gdiobj.h" #include "wx/gdiobj.h"
#include "wx/bitmap.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
class wxBrush; class wxBrush;
class wxColour;
class wxBitmap;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxBrush // wxBrush

View File

@@ -16,15 +16,16 @@
#pragma interface "pen.h" #pragma interface "pen.h"
#endif #endif
#include "wx/gdicmn.h"
#include "wx/gdiobj.h" #include "wx/gdiobj.h"
#include "wx/colour.h"
#include "wx/bitmap.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
class wxPen; class wxPen;
class wxColour;
class wxBitmap;
typedef char wxX11Dash; typedef char wxX11Dash;
@@ -38,6 +39,7 @@ public:
wxPen() { } wxPen() { }
wxPen( const wxColour &colour, int width, int style ); wxPen( const wxColour &colour, int width, int style );
wxPen( const wxBitmap &stipple, int width );
~wxPen(); ~wxPen();
wxPen( const wxPen& pen ) { Ref(pen); } wxPen( const wxPen& pen ) { Ref(pen); }
@@ -55,7 +57,8 @@ public:
void SetStyle( int style ); void SetStyle( int style );
void SetWidth( int width ); void SetWidth( int width );
void SetDashes( int number_of_dashes, const wxDash *dash ); void SetDashes( int number_of_dashes, const wxDash *dash );
void SetStipple( wxBitmap *stipple );
wxColour &GetColour() const; wxColour &GetColour() const;
int GetCap() const; int GetCap() const;
int GetJoin() const; int GetJoin() const;
@@ -64,6 +67,7 @@ public:
int GetDashes(wxDash **ptr) const; int GetDashes(wxDash **ptr) const;
int GetDashCount() const; int GetDashCount() const;
wxDash* GetDash() const; wxDash* GetDash() const;
wxBitmap* GetStipple() const;
private: private:
// ref counting code // ref counting code

View File

@@ -1,123 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/motif/brush.cpp
// Purpose: wxBrush
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "brush.h"
#endif
#include "wx/setup.h"
#include "wx/utils.h"
#include "wx/brush.h"
IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject)
wxBrushRefData::wxBrushRefData()
{
m_style = wxSOLID;
}
wxBrushRefData::wxBrushRefData(const wxBrushRefData& data)
{
m_style = data.m_style;
m_stipple = data.m_stipple;
m_colour = data.m_colour;
}
wxBrushRefData::~wxBrushRefData()
{
}
// Brushes
wxBrush::wxBrush()
{
}
wxBrush::~wxBrush()
{
}
wxBrush::wxBrush(const wxColour& col, int Style)
{
m_refData = new wxBrushRefData;
M_BRUSHDATA->m_colour = col;
M_BRUSHDATA->m_style = Style;
RealizeResource();
}
wxBrush::wxBrush(const wxBitmap& stipple)
{
m_refData = new wxBrushRefData;
M_BRUSHDATA->m_style = wxSTIPPLE;
M_BRUSHDATA->m_stipple = stipple;
RealizeResource();
}
void wxBrush::Unshare()
{
// Don't change shared data
if (!m_refData)
{
m_refData = new wxBrushRefData();
}
else
{
wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData);
UnRef();
m_refData = ref;
}
}
void wxBrush::SetColour(const wxColour& col)
{
Unshare();
M_BRUSHDATA->m_colour = col;
RealizeResource();
}
void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b)
{
Unshare();
M_BRUSHDATA->m_colour.Set(r, g, b);
RealizeResource();
}
void wxBrush::SetStyle(int Style)
{
Unshare();
M_BRUSHDATA->m_style = Style;
RealizeResource();
}
void wxBrush::SetStipple(const wxBitmap& Stipple)
{
Unshare();
M_BRUSHDATA->m_stipple = Stipple;
RealizeResource();
}
bool wxBrush::RealizeResource()
{
// Nothing more to do
return TRUE;
}

View File

@@ -135,7 +135,7 @@ wxWindowDC::wxWindowDC()
m_currentPenWidth = 1; m_currentPenWidth = 1;
m_currentPenJoin = -1; m_currentPenJoin = -1;
m_currentPenDashCount = -1; m_currentPenDashCount = -1;
m_currentPenDash = (wxMOTIFDash*) NULL; m_currentPenDash = (wxX11Dash*) NULL;
m_currentStyle = -1; m_currentStyle = -1;
m_currentFill = -1; m_currentFill = -1;
// m_currentBkMode = wxTRANSPARENT; // m_currentBkMode = wxTRANSPARENT;
@@ -160,7 +160,7 @@ wxWindowDC::wxWindowDC( wxWindow *window )
m_currentPenWidth = 1; m_currentPenWidth = 1;
m_currentPenJoin = -1; m_currentPenJoin = -1;
m_currentPenDashCount = -1; m_currentPenDashCount = -1;
m_currentPenDash = (wxMOTIFDash*) NULL; m_currentPenDash = (wxX11Dash*) NULL;
m_currentStyle = -1; m_currentStyle = -1;
m_currentFill = -1; m_currentFill = -1;
// m_currentBkMode = wxTRANSPARENT; // m_currentBkMode = wxTRANSPARENT;
@@ -1636,7 +1636,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
int old_pen_join = m_currentPenJoin; int old_pen_join = m_currentPenJoin;
int old_pen_cap = m_currentPenCap; int old_pen_cap = m_currentPenCap;
int old_pen_nb_dash = m_currentPenDashCount; int old_pen_nb_dash = m_currentPenDashCount;
wxMOTIFDash *old_pen_dash = m_currentPenDash; wxX11Dash *old_pen_dash = m_currentPenDash;
wxColour oldPenColour = m_currentColour; wxColour oldPenColour = m_currentColour;
m_currentColour = m_pen.GetColour (); m_currentColour = m_pen.GetColour ();
@@ -1646,7 +1646,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
m_currentPenJoin = m_pen.GetJoin (); m_currentPenJoin = m_pen.GetJoin ();
m_currentPenCap = m_pen.GetCap (); m_currentPenCap = m_pen.GetCap ();
m_currentPenDashCount = m_pen.GetDashCount(); m_currentPenDashCount = m_pen.GetDashCount();
m_currentPenDash = (wxMOTIFDash*)m_pen.GetDash(); m_currentPenDash = (wxX11Dash*)m_pen.GetDash();
if (m_currentStyle == wxSTIPPLE) if (m_currentStyle == wxSTIPPLE)
m_currentStipple = * m_pen.GetStipple (); m_currentStipple = * m_pen.GetStipple ();
@@ -1674,15 +1674,15 @@ void wxWindowDC::SetPen( const wxPen &pen )
int style; int style;
int join; int join;
int cap; int cap;
static const wxMOTIFDash dotted[] = {2, 5}; static const wxX11Dash dotted[] = {2, 5};
static const wxMOTIFDash short_dashed[] = {4, 4}; static const wxX11Dash short_dashed[] = {4, 4};
static const wxMOTIFDash long_dashed[] = {4, 8}; static const wxX11Dash long_dashed[] = {4, 8};
static const wxMOTIFDash dotted_dashed[] = {6, 6, 2, 6}; static const wxX11Dash dotted_dashed[] = {6, 6, 2, 6};
// We express dash pattern in pen width unit, so we are // We express dash pattern in pen width unit, so we are
// independent of zoom factor and so on... // independent of zoom factor and so on...
int req_nb_dash; int req_nb_dash;
const wxMOTIFDash *req_dash; const wxX11Dash *req_dash;
switch (m_pen.GetStyle ()) switch (m_pen.GetStyle ())
{ {
@@ -1716,13 +1716,13 @@ void wxWindowDC::SetPen( const wxPen &pen )
case wxTRANSPARENT: case wxTRANSPARENT:
default: default:
style = LineSolid; style = LineSolid;
req_dash = (wxMOTIFDash*)NULL; req_dash = (wxX11Dash*)NULL;
req_nb_dash = 0; req_nb_dash = 0;
} }
if (req_dash && req_nb_dash) if (req_dash && req_nb_dash)
{ {
wxMOTIFDash *real_req_dash = new wxMOTIFDash[req_nb_dash]; wxX11Dash *real_req_dash = new wxX11Dash[req_nb_dash];
if (real_req_dash) if (real_req_dash)
{ {
int factor = scaled_width == 0 ? 1 : scaled_width; int factor = scaled_width == 0 ? 1 : scaled_width;

View File

@@ -29,7 +29,6 @@ OBJECTS = \
app.obj,\ app.obj,\
bitmap.obj,\ bitmap.obj,\
bmpbuttn.obj,\ bmpbuttn.obj,\
brush.obj,\
button.obj,\ button.obj,\
checkbox.obj,\ checkbox.obj,\
checklst.obj,\ checklst.obj,\
@@ -63,7 +62,6 @@ OBJECTS = \
minifram.obj,\ minifram.obj,\
msgdlg.obj,\ msgdlg.obj,\
palette.obj,\ palette.obj,\
pen.obj,\
radiobox.obj,\ radiobox.obj,\
radiobut.obj,\ radiobut.obj,\
region.obj,\ region.obj,\
@@ -86,7 +84,6 @@ SOURCES = \
app.cpp,\ app.cpp,\
bitmap.cpp,\ bitmap.cpp,\
bmpbuttn.cpp,\ bmpbuttn.cpp,\
brush.cpp,\
button.cpp,\ button.cpp,\
checkbox.cpp,\ checkbox.cpp,\
checklst.cpp,\ checklst.cpp,\
@@ -120,7 +117,6 @@ SOURCES = \
minifram.cpp,\ minifram.cpp,\
msgdlg.cpp,\ msgdlg.cpp,\
palette.cpp,\ palette.cpp,\
pen.cpp,\
radiobox.cpp,\ radiobox.cpp,\
radiobut.cpp,\ radiobut.cpp,\
region.cpp,\ region.cpp,\
@@ -152,7 +148,6 @@ accel.obj : accel.cpp
app.obj : app.cpp app.obj : app.cpp
bitmap.obj : bitmap.cpp bitmap.obj : bitmap.cpp
bmpbuttn.obj : bmpbuttn.cpp bmpbuttn.obj : bmpbuttn.cpp
brush.obj : brush.cpp
button.obj : button.cpp button.obj : button.cpp
checkbox.obj : checkbox.cpp checkbox.obj : checkbox.cpp
checklst.obj : checklst.cpp checklst.obj : checklst.cpp
@@ -186,7 +181,6 @@ menuitem.obj : menuitem.cpp
minifram.obj : minifram.cpp minifram.obj : minifram.cpp
msgdlg.obj : msgdlg.cpp msgdlg.obj : msgdlg.cpp
palette.obj : palette.cpp palette.obj : palette.cpp
pen.obj : pen.cpp
radiobox.obj : radiobox.cpp radiobox.obj : radiobox.cpp
radiobut.obj : radiobut.cpp radiobut.obj : radiobut.cpp
region.obj : region.cpp region.obj : region.cpp

View File

@@ -182,7 +182,6 @@ ALL_SOURCES = \
motif/app.cpp \ motif/app.cpp \
motif/bitmap.cpp \ motif/bitmap.cpp \
motif/bmpbuttn.cpp \ motif/bmpbuttn.cpp \
motif/brush.cpp \
motif/button.cpp \ motif/button.cpp \
motif/checkbox.cpp \ motif/checkbox.cpp \
motif/checklst.cpp \ motif/checklst.cpp \
@@ -218,7 +217,6 @@ ALL_SOURCES = \
motif/minifram.cpp \ motif/minifram.cpp \
motif/msgdlg.cpp \ motif/msgdlg.cpp \
motif/palette.cpp \ motif/palette.cpp \
motif/pen.cpp \
motif/radiobox.cpp \ motif/radiobox.cpp \
motif/radiobut.cpp \ motif/radiobut.cpp \
motif/region.cpp \ motif/region.cpp \
@@ -235,6 +233,8 @@ ALL_SOURCES = \
motif/toplevel.cpp \ motif/toplevel.cpp \
motif/utils.cpp \ motif/utils.cpp \
motif/window.cpp \ motif/window.cpp \
x11/brush.cpp \
x11/pen.cpp \
unix/dialup.cpp \ unix/dialup.cpp \
unix/dir.cpp \ unix/dir.cpp \
unix/fontenum.cpp \ unix/fontenum.cpp \
@@ -513,7 +513,6 @@ ALL_HEADERS = \
motif/app.h \ motif/app.h \
motif/bitmap.h \ motif/bitmap.h \
motif/bmpbuttn.h \ motif/bmpbuttn.h \
motif/brush.h \
motif/button.h \ motif/button.h \
motif/checkbox.h \ motif/checkbox.h \
motif/checklst.h \ motif/checklst.h \
@@ -550,7 +549,6 @@ ALL_HEADERS = \
motif/minifram.h \ motif/minifram.h \
motif/msgdlg.h \ motif/msgdlg.h \
motif/palette.h \ motif/palette.h \
motif/pen.h \
motif/print.h \ motif/print.h \
motif/printdlg.h \ motif/printdlg.h \
motif/private.h \ motif/private.h \
@@ -631,7 +629,9 @@ ALL_HEADERS = \
protocol/file.h \ protocol/file.h \
protocol/ftp.h \ protocol/ftp.h \
protocol/http.h \ protocol/http.h \
protocol/protocol.h protocol/protocol.h \
x11/brush.h \
x11/pen.h
COMMONOBJS = \ COMMONOBJS = \
appcmn.o \ appcmn.o \
@@ -820,7 +820,6 @@ GUIOBJS = \
app.o \ app.o \
bitmap.o \ bitmap.o \
bmpbuttn.o \ bmpbuttn.o \
brush.o \
button.o \ button.o \
checkbox.o \ checkbox.o \
checklst.o \ checklst.o \
@@ -856,7 +855,6 @@ GUIOBJS = \
minifram.o \ minifram.o \
msgdlg.o \ msgdlg.o \
palette.o \ palette.o \
pen.o \
radiobox.o \ radiobox.o \
radiobut.o \ radiobut.o \
region.o \ region.o \
@@ -872,7 +870,9 @@ GUIOBJS = \
toolbar.o \ toolbar.o \
toplevel.o \ toplevel.o \
utils.o \ utils.o \
window.o window.o \
brush.o \
pen.o
UNIXOBJS = \ UNIXOBJS = \
dialup.o \ dialup.o \

View File

@@ -1,182 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/motif/pen.cpp
// Purpose: wxPen
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "pen.h"
#endif
#include "wx/setup.h"
#include "wx/utils.h"
#include "wx/pen.h"
IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
wxPenRefData::wxPenRefData()
{
m_style = wxSOLID;
m_width = 1;
m_join = wxJOIN_ROUND ;
m_cap = wxCAP_ROUND ;
m_nbDash = 0 ;
m_dash = (wxMOTIFDash*)NULL;
}
wxPenRefData::wxPenRefData(const wxPenRefData& data)
{
m_style = data.m_style;
m_width = data.m_width;
m_join = data.m_join;
m_cap = data.m_cap;
m_nbDash = data.m_nbDash;
m_dash = data.m_dash;
m_colour = data.m_colour;
}
wxPenRefData::~wxPenRefData()
{
}
// Pens
wxPen::wxPen()
{
}
wxPen::~wxPen()
{
}
// Should implement Create
wxPen::wxPen(const wxColour& col, int Width, int Style)
{
m_refData = new wxPenRefData;
M_PENDATA->m_colour = col;
M_PENDATA->m_width = Width;
M_PENDATA->m_style = Style;
M_PENDATA->m_join = wxJOIN_ROUND ;
M_PENDATA->m_cap = wxCAP_ROUND ;
M_PENDATA->m_nbDash = 0 ;
M_PENDATA->m_dash = (wxMOTIFDash*)NULL;
RealizeResource();
}
wxPen::wxPen(const wxBitmap& stipple, int Width)
{
m_refData = new wxPenRefData;
M_PENDATA->m_stipple = stipple;
M_PENDATA->m_width = Width;
M_PENDATA->m_style = wxSTIPPLE;
M_PENDATA->m_join = wxJOIN_ROUND ;
M_PENDATA->m_cap = wxCAP_ROUND ;
M_PENDATA->m_nbDash = 0 ;
M_PENDATA->m_dash = (wxMOTIFDash*)NULL;
RealizeResource();
}
void wxPen::Unshare()
{
// Don't change shared data
if (!m_refData)
{
m_refData = new wxPenRefData();
}
else
{
wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData);
UnRef();
m_refData = ref;
}
}
void wxPen::SetColour(const wxColour& col)
{
Unshare();
M_PENDATA->m_colour = col;
RealizeResource();
}
void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b)
{
Unshare();
M_PENDATA->m_colour.Set(r, g, b);
RealizeResource();
}
void wxPen::SetWidth(int Width)
{
Unshare();
M_PENDATA->m_width = Width;
RealizeResource();
}
void wxPen::SetStyle(int Style)
{
Unshare();
M_PENDATA->m_style = Style;
RealizeResource();
}
void wxPen::SetStipple(const wxBitmap& Stipple)
{
Unshare();
M_PENDATA->m_stipple = Stipple;
M_PENDATA->m_style = wxSTIPPLE;
RealizeResource();
}
void wxPen::SetDashes(int nb_dashes, const wxDash *Dash)
{
Unshare();
M_PENDATA->m_nbDash = nb_dashes;
M_PENDATA->m_dash = (wxMOTIFDash *)Dash;
RealizeResource();
}
void wxPen::SetJoin(int Join)
{
Unshare();
M_PENDATA->m_join = Join;
RealizeResource();
}
void wxPen::SetCap(int Cap)
{
Unshare();
M_PENDATA->m_cap = Cap;
RealizeResource();
}
bool wxPen::RealizeResource()
{
// Nothing more to do
return TRUE;
}

View File

@@ -16,6 +16,7 @@
#include "wx/setup.h" #include "wx/setup.h"
#include "wx/utils.h" #include "wx/utils.h"
#include "wx/brush.h" #include "wx/brush.h"
#include "wx/bitmap.h"
#include "wx/colour.h" #include "wx/colour.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

41
src/x11/descrip.mms Normal file
View File

@@ -0,0 +1,41 @@
#*****************************************************************************
# *
# Make file for VMS *
# Author : J.Jansen (joukj@hrem.stm.tudelft.nl) *
# Date : 10 November 1999 *
# *
#*****************************************************************************
.first
define wx [--.include.wx]
.ifdef __WXMOTIF__
CXX_DEFINE = /define=(__WXMOTIF__=1)/name=(as_is,short)\
/assume=(nostdnew,noglobal_array_new)
CC_DEFINE = /define=(__WXMOTIF__=1)/name=(as_is,short)
.else
CXX_DEFINE =
.endif
.suffixes : .cpp
.cpp.obj :
cxx $(CXXFLAGS)$(CXX_DEFINE) $(MMS$TARGET_NAME).cpp
.c.obj :
cc $(CFLAGS)$(CC_DEFINE) $(MMS$TARGET_NAME).c
OBJECTS = \
brush.obj,\
pen.obj
SOURCES = \
brush.cpp,\
pen.cpp
all : $(SOURCES)
$(MMS)$(MMSQUALIFIERS) $(OBJECTS)
.ifdef __WXMOTIF__
library [--.lib]libwx_motif.olb $(OBJECTS)
.endif
brush.obj : brush.cpp
pen.obj : pen.cpp

View File

@@ -16,6 +16,8 @@
#include "wx/setup.h" #include "wx/setup.h"
#include "wx/utils.h" #include "wx/utils.h"
#include "wx/pen.h" #include "wx/pen.h"
#include "wx/colour.h"
#include "wx/bitmap.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxPen // wxPen
@@ -47,6 +49,7 @@ public:
m_dash = new m_dash = new
*/ */
m_dash = data.m_dash; m_dash = data.m_dash;
m_stipple = data.m_stipple;
} }
bool operator == (const wxPenRefData& data) const bool operator == (const wxPenRefData& data) const
@@ -64,6 +67,7 @@ public:
int m_capStyle; int m_capStyle;
wxColour m_colour; wxColour m_colour;
int m_countDashes; int m_countDashes;
wxBitmap m_stipple;
wxX11Dash *m_dash; wxX11Dash *m_dash;
}; };
@@ -141,6 +145,13 @@ void wxPen::SetJoin( int joinStyle )
M_PENDATA->m_joinStyle = joinStyle; M_PENDATA->m_joinStyle = joinStyle;
} }
void wxPen::SetStipple( wxBitmap *stipple )
{
AllocExclusive();
M_PENDATA->m_stipple = *stipple;;
}
void wxPen::SetStyle( int style ) void wxPen::SetStyle( int style )
{ {
AllocExclusive(); AllocExclusive();
@@ -205,3 +216,10 @@ wxColour &wxPen::GetColour() const
return M_PENDATA->m_colour; return M_PENDATA->m_colour;
} }
wxBitmap *wxPen::GetStipple() const
{
wxCHECK_MSG( Ok(), &wxNullBitmap, wxT("invalid pen") );
return &M_PENDATA->m_stipple;
}