fi
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
GUIDIST=MOTIF_DIST
fi
fi
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
GUIDIST=MOTIF_DIST
fi
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [-.motif]
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
+ set default [-.x11]
+ $(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [--.demos.bombs]
$(MMS)$(MMSQUALIFIERS)/macro=(__WXMOTIF__=1)
set default [--.samples.calendar]
#! Version: $Id$
#!#############################################################################
#${
+ use lib './lib';
+ use wxFileInfo;
+
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>) ) {
chomp;
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
#! single letter flags which became so unreadable that I decided to
#! replace them with more readable strings, but it was easier to do
# NotUniv Not required for the wxUniversal
# LowLevel Low level GUI toolkit file, used by wxUniversal as well
# Theme implements a wxUniv theme
+# Motif used by Motif, even if in another port's directory
###############################################################################
# File name Type Flags
textcmn.cpp Common
textfile.cpp Common Base
timercmn.cpp Common Base
-toplvcmn.cpp Common
tokenzr.cpp Common Base
treebase.cpp Common
txtstrm.cpp Common Base
app.cpp Motif
bitmap.cpp Motif
bmpbuttn.cpp Motif
-brush.cpp Motif
+# brush.cpp Motif
button.cpp Motif
checkbox.cpp Motif
checklst.cpp Motif
minifram.cpp Motif
msgdlg.cpp Motif
palette.cpp Motif
-pen.cpp Motif
+# pen.cpp Motif
radiobox.cpp Motif
radiobut.cpp Motif
region.cpp Motif
nanox.c X11
app.cpp X11
bitmap.cpp X11
-brush.cpp X11
+brush.cpp X11 Motif
clipbrd.cpp X11
colour.cpp X11
cursor.cpp X11
main.cpp X11
minifram.cpp X11
palette.cpp X11
-pen.cpp X11
+pen.cpp X11 Motif
popupwin.cpp X11
region.cpp X11
reparent.cpp X11
image.h WXH
imaggif.h WXH
imagiff.h WXH
-imagxpm.h WXH
imagbmp.h WXH
imagpng.h WXH
imagpcx.h WXH
app.h MotifH
bitmap.h MotifH
bmpbuttn.h MotifH
-brush.h MotifH
+# brush.h MotifH
button.h MotifH
checkbox.h MotifH
checklst.h MotifH
minifram.h MotifH
msgdlg.h MotifH
palette.h MotifH
-pen.h MotifH
+# pen.h MotifH
print.h MotifH
printdlg.h MotifH
private.h MotifH
app.h X11H
bitmap.h X11H
-brush.h X11H
+brush.h X11H Motif
clipbrd.h X11H
colour.h X11H
cursor.h X11H
joystick.h X11H
minifram.h X11H
palette.h X11H
-pen.h X11H
+pen.h X11H Motif
print.h X11H
private.h X11H
region.h X11H
--- /dev/null
+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;
--- /dev/null
+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;
-#!################################################################################
+#!#############################################################################
#! File: motif.t
#! Purpose: tmake template file from which src/motif/files.lst containing the
#! list of files for wxMotif library is generated by tmake
#! Author: Vadim Zeitlin
#! Created: 28.01.00
#! Version: $Id$
-#!################################################################################
+#!#############################################################################
#${
+ use lib './lib';
+ use wxFileList qw(:default make_arrays);
+
#! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric, %wxHtml, %wxUNIX, %wxMOTIF, %wxMOTIF and
#! %wxOS2PM hashes.
IncludeTemplate("filelist.t");
+ make_arrays( 'wxGeneric', 'wxCommon', 'wxMotif',
+ 'wxUnix', 'wxHtml',
+ 'wxWxInclude', 'wxMotifInclude', 'wxGenericInclude',
+ 'wxUnixInclude', 'wxHtmlInclude', 'wxProtocolInclude' );
+
#! find all our sources
$project{"GUIOBJS"} .= "xmcombo.o ";
- foreach $file (sort keys %wxGeneric) {
- next if $wxGeneric{$file} =~ /\bNotX\b/;
-
- ($fileobj = $file) =~ s/cp?p?$/\o/;
-
- $project{"MOTIF_SOURCES"} .= "generic/" . $file . " ";
- $project{"GENERICOBJS"} .= $fileobj . " ";
- }
-
- foreach $file (sort keys %wxCommon) {
- next if $wxCommon{$file} =~ /\bNotX\b/;
-
- ($fileobj = $file) =~ s/cp?p?$/\o/;
-
- $project{"MOTIF_SOURCES"} .= "common/" . $file . " ";
- $project{"COMMONOBJS"} .= $fileobj . " ";
- }
-
- foreach $file (sort keys %wxMOTIF) {
- ($fileobj = $file) =~ s/cp?p?$/\o/;
+ my @generic = grep_not_fileflag 'NotX', @wxGeneric;
+ my @common = grep_not_fileflag 'NotX', @wxCommon;
+ my @motif = ( @wxMotif,
+ grep_source( grep_fileflag 'Motif', @wxALL ) );
- $project{"MOTIF_SOURCES"} .= "motif/" . $file . " ";
- $project{"GUIOBJS"} .= $fileobj . " ";
+ foreach my $file ( @generic ) {
+ $project{"GENERICOBJS"} .= $file->object_file . " ";
}
- foreach $file (sort keys %wxUNIX) {
- ($fileobj = $file) =~ s/cp?p?$/\o/;
-
- $project{"MOTIF_SOURCES"} .= "unix/" . $file . " ";
- $project{"UNIXOBJS"} .= $fileobj . " ";
+ foreach my $file ( @common ) {
+ $project{"COMMONOBJS"} .= $file->object_file . " ";
}
- foreach $file (sort keys %wxHTML) {
- ($fileobj = $file) =~ s/cp?p?$/\o/;
-
- $project{"MOTIF_SOURCES"} .= "html/" . $file . " ";
- $project{"HTMLOBJS"} .= $fileobj . " ";
+ foreach my $file ( @motif ) {
+ $project{"GUIOBJS"} .= $file->object_file . " ";
}
- #! find all our headers
- foreach $file (sort keys %wxWXINCLUDE) {
- next if $wxWXINCLUDE{$file} =~ /\bNotX\b/;
- $project{"MOTIF_HEADERS"} .= $file . " "
+ foreach my $file ( @wxUnix ) {
+ $project{"UNIXOBJS"} .= $file->object_file . " ";
}
- foreach $file (sort keys %wxMOTIFINCLUDE) {
- $project{"MOTIF_HEADERS"} .= "motif/" . $file . " "
+ foreach my $file ( @wxHtml ) {
+ $project{"HTMLOBJS"} .= $file->object_file . " ";
}
- foreach $file (sort keys %wxGENERICINCLUDE) {
- $project{"MOTIF_HEADERS"} .= "generic/" . $file . " "
+ foreach my $file ( @generic, @common, @motif,
+ @wxUnix, @wxHtml ) {
+ $project{"MOTIF_SOURCES"} .= $file->source_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 . " "
+ #! find all our headers
+ foreach my $file ( grep_not_fileflag( 'NotX', @wxWxInclude ),
+ @wxMotifInclude, @wxGenericInclude, @wxUnixInclude,
+ @wxHtmlInclude, @wxProtocolInclude,
+ grep_header( grep_fileflag( 'Motif', @wxALL ) ) ) {
+ $project{MOTIF_HEADERS} .= $file->source_file . " ";
}
#$}
# This file was automatically generated by tmake
#if defined(__WXMSW__)
#include "wx/msw/brush.h"
#elif defined(__WXMOTIF__)
-#include "wx/motif/brush.h"
+#include "wx/x11/brush.h"
#elif defined(__WXGTK__)
#include "wx/gtk/brush.h"
#elif defined(__WXX11__)
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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_
int m_currentPenJoin ;
int m_currentPenCap ;
int m_currentPenDashCount ;
- wxMOTIFDash* m_currentPenDash ;
+ wxX11Dash* m_currentPenDash ;
wxBitmap m_currentStipple ;
int m_currentStyle ;
int m_currentFill ;
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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_
#if defined(__WXMSW__)
#include "wx/msw/pen.h"
#elif defined(__WXMOTIF__)
-#include "wx/motif/pen.h"
+#include "wx/x11/pen.h"
#elif defined(__WXGTK__)
#include "wx/gtk/pen.h"
#elif defined(__WXX11__)
#pragma interface "brush.h"
#endif
-#include "wx/gdicmn.h"
#include "wx/gdiobj.h"
-#include "wx/bitmap.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxBrush;
+class wxColour;
+class wxBitmap;
//-----------------------------------------------------------------------------
// wxBrush
#pragma interface "pen.h"
#endif
+#include "wx/gdicmn.h"
#include "wx/gdiobj.h"
-#include "wx/colour.h"
-#include "wx/bitmap.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxPen;
+class wxColour;
+class wxBitmap;
typedef char wxX11Dash;
wxPen() { }
wxPen( const wxColour &colour, int width, int style );
+ wxPen( const wxBitmap &stipple, int width );
~wxPen();
wxPen( const wxPen& pen ) { Ref(pen); }
void SetStyle( int style );
void SetWidth( int width );
void SetDashes( int number_of_dashes, const wxDash *dash );
-
+ void SetStipple( wxBitmap *stipple );
+
wxColour &GetColour() const;
int GetCap() const;
int GetJoin() const;
int GetDashes(wxDash **ptr) const;
int GetDashCount() const;
wxDash* GetDash() const;
+ wxBitmap* GetStipple() const;
private:
// ref counting code
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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;
-}
-
m_currentPenWidth = 1;
m_currentPenJoin = -1;
m_currentPenDashCount = -1;
- m_currentPenDash = (wxMOTIFDash*) NULL;
+ m_currentPenDash = (wxX11Dash*) NULL;
m_currentStyle = -1;
m_currentFill = -1;
// m_currentBkMode = wxTRANSPARENT;
m_currentPenWidth = 1;
m_currentPenJoin = -1;
m_currentPenDashCount = -1;
- m_currentPenDash = (wxMOTIFDash*) NULL;
+ m_currentPenDash = (wxX11Dash*) NULL;
m_currentStyle = -1;
m_currentFill = -1;
// m_currentBkMode = wxTRANSPARENT;
int old_pen_join = m_currentPenJoin;
int old_pen_cap = m_currentPenCap;
int old_pen_nb_dash = m_currentPenDashCount;
- wxMOTIFDash *old_pen_dash = m_currentPenDash;
+ wxX11Dash *old_pen_dash = m_currentPenDash;
wxColour oldPenColour = m_currentColour;
m_currentColour = m_pen.GetColour ();
m_currentPenJoin = m_pen.GetJoin ();
m_currentPenCap = m_pen.GetCap ();
m_currentPenDashCount = m_pen.GetDashCount();
- m_currentPenDash = (wxMOTIFDash*)m_pen.GetDash();
+ m_currentPenDash = (wxX11Dash*)m_pen.GetDash();
if (m_currentStyle == wxSTIPPLE)
m_currentStipple = * m_pen.GetStipple ();
int style;
int join;
int cap;
- static const wxMOTIFDash dotted[] = {2, 5};
- static const wxMOTIFDash short_dashed[] = {4, 4};
- static const wxMOTIFDash long_dashed[] = {4, 8};
- static const wxMOTIFDash dotted_dashed[] = {6, 6, 2, 6};
+ static const wxX11Dash dotted[] = {2, 5};
+ static const wxX11Dash short_dashed[] = {4, 4};
+ static const wxX11Dash long_dashed[] = {4, 8};
+ static const wxX11Dash dotted_dashed[] = {6, 6, 2, 6};
// We express dash pattern in pen width unit, so we are
// independent of zoom factor and so on...
int req_nb_dash;
- const wxMOTIFDash *req_dash;
+ const wxX11Dash *req_dash;
switch (m_pen.GetStyle ())
{
case wxTRANSPARENT:
default:
style = LineSolid;
- req_dash = (wxMOTIFDash*)NULL;
+ req_dash = (wxX11Dash*)NULL;
req_nb_dash = 0;
}
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)
{
int factor = scaled_width == 0 ? 1 : scaled_width;
app.obj,\
bitmap.obj,\
bmpbuttn.obj,\
- brush.obj,\
button.obj,\
checkbox.obj,\
checklst.obj,\
minifram.obj,\
msgdlg.obj,\
palette.obj,\
- pen.obj,\
radiobox.obj,\
radiobut.obj,\
region.obj,\
app.cpp,\
bitmap.cpp,\
bmpbuttn.cpp,\
- brush.cpp,\
button.cpp,\
checkbox.cpp,\
checklst.cpp,\
minifram.cpp,\
msgdlg.cpp,\
palette.cpp,\
- pen.cpp,\
radiobox.cpp,\
radiobut.cpp,\
region.cpp,\
app.obj : app.cpp
bitmap.obj : bitmap.cpp
bmpbuttn.obj : bmpbuttn.cpp
-brush.obj : brush.cpp
button.obj : button.cpp
checkbox.obj : checkbox.cpp
checklst.obj : checklst.cpp
minifram.obj : minifram.cpp
msgdlg.obj : msgdlg.cpp
palette.obj : palette.cpp
-pen.obj : pen.cpp
radiobox.obj : radiobox.cpp
radiobut.obj : radiobut.cpp
region.obj : region.cpp
motif/app.cpp \
motif/bitmap.cpp \
motif/bmpbuttn.cpp \
- motif/brush.cpp \
motif/button.cpp \
motif/checkbox.cpp \
motif/checklst.cpp \
motif/minifram.cpp \
motif/msgdlg.cpp \
motif/palette.cpp \
- motif/pen.cpp \
motif/radiobox.cpp \
motif/radiobut.cpp \
motif/region.cpp \
motif/toplevel.cpp \
motif/utils.cpp \
motif/window.cpp \
+ x11/brush.cpp \
+ x11/pen.cpp \
unix/dialup.cpp \
unix/dir.cpp \
unix/fontenum.cpp \
motif/app.h \
motif/bitmap.h \
motif/bmpbuttn.h \
- motif/brush.h \
motif/button.h \
motif/checkbox.h \
motif/checklst.h \
motif/minifram.h \
motif/msgdlg.h \
motif/palette.h \
- motif/pen.h \
motif/print.h \
motif/printdlg.h \
motif/private.h \
protocol/file.h \
protocol/ftp.h \
protocol/http.h \
- protocol/protocol.h
+ protocol/protocol.h \
+ x11/brush.h \
+ x11/pen.h
COMMONOBJS = \
appcmn.o \
app.o \
bitmap.o \
bmpbuttn.o \
- brush.o \
button.o \
checkbox.o \
checklst.o \
minifram.o \
msgdlg.o \
palette.o \
- pen.o \
radiobox.o \
radiobut.o \
region.o \
toolbar.o \
toplevel.o \
utils.o \
- window.o
+ window.o \
+ brush.o \
+ pen.o
UNIXOBJS = \
dialup.o \
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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;
-}
-
#include "wx/setup.h"
#include "wx/utils.h"
#include "wx/brush.h"
+#include "wx/bitmap.h"
#include "wx/colour.h"
//-----------------------------------------------------------------------------
--- /dev/null
+#*****************************************************************************
+# *
+# 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
#include "wx/setup.h"
#include "wx/utils.h"
#include "wx/pen.h"
+#include "wx/colour.h"
+#include "wx/bitmap.h"
//-----------------------------------------------------------------------------
// wxPen
m_dash = new
*/
m_dash = data.m_dash;
+ m_stipple = data.m_stipple;
}
bool operator == (const wxPenRefData& data) const
int m_capStyle;
wxColour m_colour;
int m_countDashes;
+ wxBitmap m_stipple;
wxX11Dash *m_dash;
};
M_PENDATA->m_joinStyle = joinStyle;
}
+void wxPen::SetStipple( wxBitmap *stipple )
+{
+ AllocExclusive();
+
+ M_PENDATA->m_stipple = *stipple;;
+}
+
void wxPen::SetStyle( int style )
{
AllocExclusive();
return M_PENDATA->m_colour;
}
+
+wxBitmap *wxPen::GetStipple() const
+{
+ wxCHECK_MSG( Ok(), &wxNullBitmap, wxT("invalid pen") );
+
+ return &M_PENDATA->m_stipple;
+}