summaryrefslogtreecommitdiff
path: root/svtools/workben/svdem.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/workben/svdem.cxx')
-rw-r--r--svtools/workben/svdem.cxx1176
1 files changed, 1176 insertions, 0 deletions
diff --git a/svtools/workben/svdem.cxx b/svtools/workben/svdem.cxx
new file mode 100644
index 000000000000..9de046fae423
--- /dev/null
+++ b/svtools/workben/svdem.cxx
@@ -0,0 +1,1176 @@
+/*************************************************************************
+ *
+ * $RCSfile: svdem.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:59:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include <vcl/wrkwin.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/msgbox.hxx>
+#include <vcl/drag.hxx>
+#include <vcl/print.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/help.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/button.hxx>
+#include <vcl/scrbar.hxx>
+#include <vcl/slider.hxx>
+#include <vcl/group.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/status.hxx>
+#include <stdmenu.hxx>
+#include <ctrltool.hxx>
+#include <ctrlbox.hxx>
+#include <tabbar.hxx>
+#include <valueset.hxx>
+#include <headbar.hxx>
+#include <prgsbar.hxx>
+#include <calendar.hxx>
+#include <prnsetup.hxx>
+#include <printdlg.hxx>
+
+// -----------------------------------------------------------------------
+
+class MyApp : public Application
+{
+public:
+ void Main();
+};
+
+// -----------------------------------------------------------------------
+
+class ShowBitmap : public WorkWindow
+{
+ Bitmap aBmp;
+
+public:
+ ShowBitmap( Window* pParent, const Bitmap& rBmp );
+
+ virtual void Paint( const Rectangle& );
+ virtual BOOL Close();
+};
+
+// -----------------------------------------------------------------------
+
+class ShowFont : public Control
+{
+public:
+ ShowFont( Window* pParent );
+
+ virtual void Paint( const Rectangle& );
+ void SetFont( const Font& rFont )
+ { Invalidate(); Control::SetFont( rFont ); }
+};
+
+// --- class OrientSlider ------------------------------------------------
+
+class OrientSlider : public Slider
+{
+public:
+ OrientSlider( Window* pParent );
+
+ short GetOrientation() const { return (short)GetThumbPos(); }
+};
+
+// -----------------------------------------------------------------------
+
+OrientSlider::OrientSlider( Window* pParent ) :
+ Slider( pParent, WB_HORZ | WB_DRAG )
+{
+ SetThumbPos( 0 );
+ SetLineSize( 10 );
+ SetPageSize( 100 );
+ SetRange( Range( 0, 3600 ) );
+}
+
+// -----------------------------------------------------------------------
+
+class MyFontDialog : public ModalDialog
+{
+private:
+ FontList* pList;
+ Font aCurFont;
+ Printer aPrinter;
+ FontNameBox aFontBox;
+ FontStyleBox aStyleBox;
+ FontSizeBox aSizeBox;
+ ListBox aUnderlineBox;
+ ListBox aStrikeoutBox;
+ CheckBox aWordLineBox;
+ CheckBox aShadowBox;
+ CheckBox aOutlineBox;
+ ColorListBox aColorBox;
+ GroupBox aEffectBox;
+ OrientSlider aLineOrientSlider;
+ ShowFont aShowFont;
+ GroupBox aSampleBox;
+ FixedText aMapText;
+ OKButton aOKBtn;
+ CancelButton aCancelBtn;
+
+public:
+ MyFontDialog( Window* pParent );
+
+ DECL_LINK( SelectFont, ComboBox* );
+ DECL_LINK( SelectStyle, ComboBox* );
+ DECL_LINK( AttrHdl, Window * );
+ void SetAttr();
+ short Execute();
+};
+
+// -----------------------------------------------------------------------
+
+class MyTabBar : public TabBar
+{
+public:
+ MyTabBar( Window* pParent,
+ WinBits nWinStyle = WB_STDTABBAR ) :
+ TabBar( pParent, nWinStyle ) {}
+
+ virtual long DeactivatePage();
+ virtual long AllowRenaming();
+ virtual void Split();
+ virtual void Command( const CommandEvent& rCEvt );
+ virtual BOOL QueryDrop( DropEvent& rDEvt );
+};
+
+// -----------------------------------------------------------------------
+
+class MyCalendar : public WorkWindow
+{
+ MenuBar aMenuBar;
+ PopupMenu aWeekStartMenu;
+ PopupMenu aWeekCountMenu;
+ Calendar aCalendar;
+ Color aInfoColor;
+ Color aHolidayColor;
+ Color aFrameColor;
+
+public:
+ MyCalendar( Window* pParent );
+ ~MyCalendar();
+
+ DECL_LINK( RequestDateInfoHdl, Calendar* );
+ DECL_LINK( DoubleClickHdl, Calendar* );
+ DECL_LINK( MenuSelectHdl, Menu* );
+
+ void Resize();
+};
+
+// -----------------------------------------------------------------------
+
+class MyWin : public WorkWindow
+{
+private:
+ Printer aPrn;
+ ToolBox aBox;
+ StatusBar aBar;
+ HeaderBar aHeadBar;
+ ColorListBox aColorList;
+ LineListBox aLineList;
+ ValueSet aValueSet;
+ CalendarField aCalendarField;
+ CalendarField aCalendarField2;
+ MyTabBar aTabBar;
+ ProgressBar aPrgsBar;
+ PushButton aFontBtn;
+ PushButton aCalendarBtn;
+ PushButton aPrnSetupBtn;
+ PushButton aPrnDlgBtn;
+ Size aBoxSize;
+ MyCalendar* pCalendar;
+ PopupMenu* pMenu;
+ FontNameMenu* pNameMenu;
+ FontStyleMenu* pStyleMenu;
+ FontSizeMenu* pSizeMenu;
+
+public:
+ MyWin( Window* pParent, WinBits aWinStyle );
+ ~MyWin();
+
+ DECL_LINK( Test, PushButton* );
+ DECL_LINK( SelectHdl, Window* );
+ DECL_LINK( CalSelectHdl, CalendarField* );
+ void ContextMenu( const Point& rPos );
+
+ void Command( const CommandEvent& rCEvt );
+ void MouseButtonDown( const MouseEvent& rMEvt );
+ void KeyInput( const KeyEvent& rKEvt );
+ void Paint( const Rectangle& rRect );
+ void Resize();
+};
+
+// -----------------------------------------------------------------------
+
+void MyApp::Main()
+{
+ Help aHelp;
+ SetHelp( &aHelp );
+ Help::EnableContextHelp();
+ Help::EnableExtHelp();
+ Help::EnableBalloonHelp();
+ Help::EnableQuickHelp();
+
+ MyWin aMainWin( NULL, WinBits( WB_APP | WB_STDWORK | WB_CLIPCHILDREN ) );
+ aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "SVTOOLS - Workbench" ) ) );
+ aMainWin.GrabFocus();
+ aMainWin.Show();
+
+ Execute();
+}
+
+// -----------------------------------------------------------------------
+
+ShowBitmap::ShowBitmap( Window* pParent, const Bitmap& rBmp ) :
+ WorkWindow( pParent, WB_STDWORK ),
+ aBmp( rBmp )
+{
+ SetOutputSizePixel( rBmp.GetSizePixel() );
+ SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Bitmap-Viewer" ) ) );
+ Show();
+}
+
+// -----------------------------------------------------------------------
+
+void ShowBitmap::Paint( const Rectangle& )
+{
+ DrawBitmap( Point(), GetOutputSizePixel(), aBmp );
+}
+
+// -----------------------------------------------------------------------
+
+BOOL ShowBitmap::Close()
+{
+ Hide();
+ delete this;
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+ShowFont::ShowFont( Window* pParent ) :
+ Control( pParent, WB_BORDER )
+{
+ SetMapMode( MapMode( MAP_POINT, Point(),
+ Fraction( 1, 10 ), Fraction( 1, 10 ) ) );
+ SetBackground( Wallpaper( Color( COL_WHITE ) ) );
+}
+
+// -----------------------------------------------------------------------
+
+void ShowFont::Paint( const Rectangle& )
+{
+ const Font& rFont = GetFont();
+ String aText;
+ Size aWindowSize( GetOutputSize() );
+ long x,y;
+
+ if ( rFont.GetLineOrientation() )
+ {
+ aText.Append( String::CreateFromInt32( rFont.GetLineOrientation()/10 ) );
+ aText.AppendAscii( " degree." );
+
+ x = aWindowSize.Width()/2;
+ y = aWindowSize.Height()/2;
+ }
+ else
+ {
+ aText = rFont.GetName();
+ if ( !aText.Len() )
+ aText.AssignAscii( "Sample" );
+
+ x = aWindowSize.Width()/2 - GetTextWidth( aText )/2;
+ y = aWindowSize.Height()/2 - GetTextHeight()/2;
+ }
+
+ DrawText( Point( x, y ), aText );
+}
+
+// -----------------------------------------------------------------------
+
+MyFontDialog::MyFontDialog( Window* pParent ) :
+ ModalDialog( pParent, WB_SVLOOK | WB_STDMODAL ),
+ aFontBox( this ),
+ aStyleBox( this ),
+ aSizeBox( this ),
+ aUnderlineBox( this, WB_DROPDOWN ),
+ aStrikeoutBox( this, WB_DROPDOWN ),
+ aWordLineBox( this ),
+ aShadowBox( this ),
+ aOutlineBox( this ),
+ aColorBox( this, WB_DROPDOWN ),
+ aEffectBox( this ),
+ aLineOrientSlider( this ),
+ aShowFont( this ),
+ aSampleBox( this ),
+ aMapText( this, WB_LEFT | WB_WORDBREAK ),
+ aOKBtn( this, WB_DEFBUTTON ),
+ aCancelBtn( this )
+{
+ pList = NULL;
+
+ aFontBox.EnableWYSIWYG( TRUE );
+ aFontBox.EnableSymbols( TRUE );
+ aFontBox.SetPosSizePixel( Point( 10, 10 ), Size( 140, 140 ) );
+ aFontBox.SetSelectHdl( LINK( this, MyFontDialog, SelectFont ) );
+ aFontBox.SetLoseFocusHdl( LINK( this, MyFontDialog, SelectFont ) );
+ aFontBox.Show();
+
+ aStyleBox.SetPosSizePixel( Point( 160, 10 ), Size( 100, 140 ) );
+ aStyleBox.SetSelectHdl( LINK( this, MyFontDialog, SelectStyle ) );
+ aStyleBox.SetLoseFocusHdl( LINK( this, MyFontDialog, SelectStyle ) );
+ aStyleBox.Show();
+
+ aSizeBox.SetPosSizePixel( Point( 270, 10 ), Size( 60, 140 ) );
+ aSizeBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aSizeBox.SetLoseFocusHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aSizeBox.Show();
+
+ aUnderlineBox.SetPosSizePixel( Point( 15, 180 ), Size( 130, 100 ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_NONE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_SINGLE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOUBLE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOTTED" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DONTKNOW" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASH" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_LONGDASH" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASHDOT" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASHDOTDOT" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_SMALLWAVE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_WAVE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOUBLEWAVE" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLD" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDOTTED" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASH" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDLONGDASH" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASHDOT" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASHDOTDOT" ) ) );
+ aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDWAVE" ) ) );
+ aUnderlineBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aUnderlineBox.Show();
+
+ aStrikeoutBox.SetPosSizePixel( Point( 15, 210 ), Size( 130, 100 ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_NONE" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_SINGLE" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_DOUBLE" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_DONTKNOW" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_BOLD" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_SLASH" ) ) );
+ aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_X" ) ) );
+ aStrikeoutBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aStrikeoutBox.Show();
+
+ aWordLineBox.SetPosSizePixel( Point( 15, 240 ), Size( 130, 19 ) );
+ aWordLineBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Only ~Words" ) ) );
+ aWordLineBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aWordLineBox.Show();
+
+ aShadowBox.SetPosSizePixel( Point( 15, 260 ), Size( 130, 19 ) );
+ aShadowBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "~Shadow" ) ) );
+ aShadowBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aShadowBox.Show();
+
+ aOutlineBox.SetPosSizePixel( Point( 15, 280 ), Size( 130, 19 ) );
+ aOutlineBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "~Outline" ) ) );
+ aOutlineBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aOutlineBox.Show();
+
+ {
+ aColorBox.SetPosSizePixel( Point( 15, 305 ), Size( 130, 100 ) );
+ aColorBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aColorBox.SetUpdateMode( FALSE );
+ aColorBox.InsertEntry( Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
+ aColorBox.InsertEntry( Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
+ aColorBox.InsertEntry( Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
+ aColorBox.InsertEntry( Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
+ aColorBox.InsertEntry( Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
+ aColorBox.InsertEntry( Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
+ aColorBox.InsertEntry( Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
+ aColorBox.InsertEntry( Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
+ aColorBox.InsertEntry( Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
+ aColorBox.InsertEntry( Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
+ aColorBox.InsertEntry( Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
+ aColorBox.SetUpdateMode( TRUE );
+ aColorBox.Show();
+ }
+
+ aEffectBox.SetPosSizePixel( Point( 10, 160 ), Size( 140, 175 ) );
+ aEffectBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Effects" ) ) );
+ aEffectBox.Show();
+
+ Size aSliderSize = aLineOrientSlider.GetSizePixel();
+ aLineOrientSlider.SetPosSizePixel( Point( 160, 335-aSliderSize.Height() ),
+ Size( 250, aSliderSize.Height() ) );
+ aLineOrientSlider.SetSlideHdl( LINK( this, MyFontDialog, AttrHdl ) );
+ aLineOrientSlider.Show();
+
+ aShowFont.SetPosSizePixel( Point( 165, 180 ), Size( 240, 70 ) );
+ aShowFont.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Sample" ) ) );
+ aShowFont.Show();
+
+ aSampleBox.SetPosSizePixel( Point( 160, 160 ), Size( 250, 100 ) );
+ aSampleBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Sample" ) ) );
+ aSampleBox.Show();
+
+ aMapText.SetPosSizePixel( Point( 160, 270 ), Size( 250, 35 ) );
+ aMapText.Show();
+
+ aOKBtn.SetPosSizePixel( Point( 340, 10 ), Size( 70, 25 ) );
+ aOKBtn.Show();
+
+ aCancelBtn.SetPosSizePixel( Point( 340, 40 ), Size( 70, 25 ) );
+ aCancelBtn.Show();
+
+ SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "FontDialog" ) ) );
+ SetOutputSizePixel( Size( 420, 345 ) );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyFontDialog, SelectFont, ComboBox*, EMPTYARG )
+{
+ aStyleBox.Fill( aFontBox.GetText(), pList );
+ FontInfo aInfo = pList->Get( aFontBox.GetText(), aStyleBox.GetText() );
+ aSizeBox.Fill( aInfo, pList );
+ SetAttr();
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyFontDialog, SelectStyle, ComboBox*, EMPTYARG )
+{
+ FontInfo aInfo = pList->Get( aFontBox.GetText(), aStyleBox.GetText() );
+ aSizeBox.Fill( aInfo, pList );
+ SetAttr();
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyFontDialog, AttrHdl, Window*, EMPTYARG )
+{
+ SetAttr();
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+void MyFontDialog::SetAttr()
+{
+ FontInfo aFont( pList->Get( aFontBox.GetText(), aStyleBox.GetText() ) );
+ aFont.SetSize( Size( 0, aSizeBox.GetValue() ) );
+ aFont.SetUnderline( (FontUnderline)aUnderlineBox.GetSelectEntryPos() );
+ aFont.SetStrikeout( (FontStrikeout)aStrikeoutBox.GetSelectEntryPos() );
+ aFont.SetColor( Color( (ColorName)aColorBox.GetSelectEntryPos() ) );
+ aFont.SetWordLineMode( aWordLineBox.IsChecked() );
+ aFont.SetShadow( aShadowBox.IsChecked() );
+ aFont.SetOutline( aOutlineBox.IsChecked() );
+ aFont.SetLineOrientation( aLineOrientSlider.GetOrientation() );
+ aFont.SetTransparent( TRUE );
+ aMapText.SetText( pList->GetFontMapText( aFont ) );
+ aShowFont.SetFont( aFont );
+}
+
+// -----------------------------------------------------------------------
+
+short MyFontDialog::Execute()
+{
+ pList = new FontList( &aPrinter, this );
+ aFontBox.Fill( pList );
+ aSizeBox.SetValue( 120 );
+ aUnderlineBox.SelectEntryPos( 0 );
+ aStrikeoutBox.SelectEntryPos( 0 );
+ aColorBox.SelectEntryPos( 0 );
+ SelectFont( &aFontBox );
+ short nRet = ModalDialog::Execute();
+ delete pList;
+ return nRet;
+}
+
+// -----------------------------------------------------------------------
+
+long MyTabBar::DeactivatePage()
+{
+ if ( GetCurPageId() == 6 )
+ {
+ QueryBox aQueryBox( this, WB_YES_NO | WB_DEF_YES,
+ XubString( RTL_CONSTASCII_USTRINGPARAM( "Deactivate" ) ) );
+ if ( aQueryBox.Execute() == RET_YES )
+ return TRUE;
+ else
+ return FALSE;
+ }
+ else
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+long MyTabBar::AllowRenaming()
+{
+ XubString aStr( RTL_CONSTASCII_USTRINGPARAM( "Allow renaming: " ) );
+ aStr += GetEditText();
+ QueryBox aQueryBox( this, WB_YES_NO_CANCEL | WB_DEF_YES, aStr );
+ long nRet = aQueryBox.Execute();
+ if ( nRet == RET_YES )
+ return TAB_RENAMING_YES;
+ else if ( nRet == RET_NO )
+ return TAB_RENAMING_NO;
+ else // ( nRet == RET_CANCEL )
+ return TAB_RENAMING_CANCEL;
+}
+
+// -----------------------------------------------------------------------
+
+void MyTabBar::Split()
+{
+ Size aSize = GetSizePixel();
+ long nWidth = GetSplitSize();
+ long nMaxWidth = GetParent()->GetOutputSizePixel().Width()-50;
+ if ( nWidth < GetMinSize() )
+ nWidth = GetMinSize();
+ else if ( nWidth > nMaxWidth )
+ nWidth = nMaxWidth;
+ SetSizePixel( Size( nWidth, aSize.Height() ) );
+}
+
+// -----------------------------------------------------------------------
+
+void MyTabBar::Command( const CommandEvent& rCEvt )
+{
+ if ( rCEvt.GetCommand() == COMMAND_STARTDRAG )
+ {
+ Region aRegion;
+ if ( StartDrag( rCEvt, aRegion ) )
+ {
+ DragServer::Clear();
+ DragServer::CopyString( XubString( RTL_CONSTASCII_USTRINGPARAM( "TabBar" ) ) );
+ if ( GetSelectPageCount() > 1 )
+ {
+ ExecuteDrag( Pointer( POINTER_MOVEFILES ),
+ Pointer( POINTER_COPYFILES ),
+ DRAG_ALL, &aRegion );
+ }
+ else
+ {
+ ExecuteDrag( Pointer( POINTER_MOVEFILE ),
+ Pointer( POINTER_COPYFILE ),
+ DRAG_ALL, &aRegion );
+ }
+ HideDropPos();
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+BOOL MyTabBar::QueryDrop( DropEvent& rDEvt )
+{
+ if ( rDEvt.IsLeaveWindow() )
+ HideDropPos();
+ else
+ ShowDropPos( rDEvt.GetPosPixel() );
+/*
+ if ( rDEvt.IsLeaveWindow() )
+ EndSwitchPage();
+ else
+ SwitchPage( rDEvt.GetPosPixel() );
+*/
+
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+MyCalendar::MyCalendar( Window* pParent ) :
+ WorkWindow( pParent, WB_STDWORK ),
+ aCalendar( this, WB_TABSTOP | WB_WEEKNUMBER | WB_BOLDTEXT | WB_FRAMEINFO | WB_MULTISELECT ),
+ aInfoColor( COL_LIGHTBLUE ),
+ aHolidayColor( COL_LIGHTRED ),
+ aFrameColor( COL_LIGHTRED )
+{
+ const International& rIntn = aCalendar.GetInternational();
+ aMenuBar.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Wochen~anfang" ) ) );
+ aMenuBar.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Erste Woche" ) ) );
+ aMenuBar.SetPopupMenu( 1, &aWeekStartMenu );
+ aMenuBar.SetPopupMenu( 2, &aWeekCountMenu );
+ for ( USHORT i = 0; i < 7; i++ )
+ aWeekStartMenu.InsertItem( 10+i, rIntn.GetDayText( (DayOfWeek)i ), MIB_AUTOCHECK | MIB_RADIOCHECK );
+ aWeekStartMenu.CheckItem( 10+(USHORT)rIntn.GetWeekStart() );
+ aWeekCountMenu.InsertItem( 20, XubString( RTL_CONSTASCII_USTRINGPARAM( "~1. Januar" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
+ aWeekCountMenu.InsertItem( 21, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste 4 ~Tage-Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
+ aWeekCountMenu.InsertItem( 22, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste ~volle Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
+ aWeekCountMenu.CheckItem( 20+(USHORT)rIntn.GetWeekCountStart() );
+ aMenuBar.SetSelectHdl( LINK( this, MyCalendar, MenuSelectHdl ) );
+ SetMenuBar( &aMenuBar );
+
+ Date aCurDate = aCalendar.GetCurDate();
+ aCalendar.SetRequestDateInfoHdl( LINK( this, MyCalendar, RequestDateInfoHdl ) );
+ aCalendar.SetDoubleClickHdl( LINK( this, MyCalendar, DoubleClickHdl ) );
+ aCalendar.SetSaturdayColor( Color( COL_LIGHTGREEN ) );
+ aCalendar.SetSundayColor( aHolidayColor );
+ aCalendar.AddDateInfo( Date( 1, 1, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Neujahr" ) ), &aHolidayColor, NULL );
+ aCalendar.AddDateInfo( Date( 24, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Heiligabend" ) ), &aInfoColor, NULL );
+ aCalendar.AddDateInfo( Date( 25, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "1. Weihnachttag" ) ), &aHolidayColor, NULL );
+ aCalendar.AddDateInfo( Date( 26, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "2. Weihnachttag" ) ), &aHolidayColor, NULL );
+ aCalendar.AddDateInfo( Date( 31, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Silvester" ) ), &aInfoColor, NULL );
+ aCalendar.SetPosPixel( Point() );
+ aCalendar.SetFirstDate( Date( 1, 1, aCurDate.GetYear() ) );
+ aCalendar.Show();
+
+ SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Calendar" ) ) );
+ SetOutputSizePixel( aCalendar.CalcWindowSizePixel( 3, 4 ) );
+}
+
+// -----------------------------------------------------------------------
+
+MyCalendar::~MyCalendar()
+{
+ SetMenuBar( NULL );
+ aMenuBar.SetPopupMenu( 1, NULL );
+ aMenuBar.SetPopupMenu( 2, NULL );
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyCalendar, RequestDateInfoHdl, Calendar*, EMPTYARG )
+{
+ USHORT nRequestYear = aCalendar.GetRequestYear();
+ if ( (nRequestYear >= 1954) && (nRequestYear <= 1989) )
+ aCalendar.AddDateInfo( Date( 17, 6, nRequestYear ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Tag der deutschen Einheit" ) ), &aHolidayColor, NULL );
+ else if ( nRequestYear >= 1990 )
+ aCalendar.AddDateInfo( Date( 3, 10, nRequestYear ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Tag der deutschen Einheit" ) ), &aHolidayColor, NULL );
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyCalendar, DoubleClickHdl, Calendar*, EMPTYARG )
+{
+ Date aDate = aCalendar.GetCurDate();
+ String aStr( RTL_CONSTASCII_USTRINGPARAM( "Info: " ) );
+ aStr += Application::GetAppInternational().GetDate( aDate );
+ aCalendar.AddDateInfo( aDate, aStr, NULL, &aFrameColor, DIB_BOLD );
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyCalendar, MenuSelectHdl, Menu*, pMenu )
+{
+ International aIntn = aCalendar.GetInternational();
+ USHORT nItemId = pMenu->GetCurItemId();
+
+ if ( (nItemId >= 10) && (nItemId <= 19) )
+ aIntn.SetWeekStart( (DayOfWeek)(nItemId-10) );
+ else if ( (nItemId >= 20) && (nItemId <= 29) )
+ aIntn.SetWeekCountStart( (WeekCountStart)(nItemId-20) );
+ aCalendar.SetInternational( aIntn );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+void MyCalendar::Resize()
+{
+ aCalendar.SetSizePixel( GetOutputSizePixel() );
+}
+
+// -----------------------------------------------------------------------
+
+MyWin::MyWin( Window* pParent, WinBits aWinStyle ) :
+ WorkWindow(pParent, aWinStyle | WB_SVLOOK ),
+ aBox( this, WB_BORDER | WB_SVLOOK ),
+ aBar( this, WB_BORDER | WB_SVLOOK | WB_RIGHT ),
+ aHeadBar( this, WB_BORDER | WB_SVLOOK | WB_DRAG | WB_BUTTONSTYLE ),
+ aColorList( this ),
+ aLineList( this ),
+ aValueSet( this, WB_TABSTOP | WB_NAMEFIELD | WB_NONEFIELD | WB_BORDER | WB_ITEMBORDER | WB_VSCROLL /* | WB_FLATVALUESET */ ),
+ aCalendarField( this, WB_TABSTOP | WB_SPIN | WB_REPEAT | WB_DROPDOWN | WB_BORDER ),
+ aCalendarField2( this, WB_TABSTOP | WB_SPIN | WB_REPEAT | WB_DROPDOWN | WB_BORDER ),
+ aTabBar( this, WB_BORDER | WB_MULTISELECT | WB_SCROLL | WB_SIZEABLE | WB_DRAG ),
+ aPrgsBar( this ),
+ aFontBtn( this ),
+ aCalendarBtn( this ),
+ aPrnSetupBtn( this ),
+ aPrnDlgBtn( this )
+{
+ SetBackground( Wallpaper( GetSettings().GetStyleSettings().GetFaceColor() ) );
+
+ pCalendar = NULL;
+ pMenu = NULL;
+
+ Bitmap aBmp;
+ aBox.InsertItem( 1, aBmp );
+ aBox.InsertItem( 2, aBmp );
+ aBox.InsertItem( 3, aBmp );
+ aBox.InsertItem( 4, aBmp );
+ aBox.InsertSeparator();
+ aBox.InsertItem( 5, aBmp );
+ aBox.InsertItem( 6, aBmp );
+ aBox.InsertItem( 7, aBmp );
+ aBox.InsertItem( 8, aBmp );
+ aBox.InsertSpace();
+ aBox.InsertItem( 9, aBmp );
+ aBox.SetPosPixel( Point( 0, 0 ) );
+ aBoxSize = aBox.GetSizePixel();
+ aBox.Show();
+
+ aBar.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Ready" ) ) );
+ aBar.InsertItem( 1, 35 );
+ aBar.InsertItem( 2, 55 );
+ aBar.InsertItem( 3, 55 );
+ aBar.SetItemText( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Text" ) ) );
+ aBar.SetItemText( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "21.01.93" ) ) );
+ aBar.SetItemText( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "12:00:00" ) ) );
+ aBar.Show();
+
+ long nY = aBox.GetSizePixel().Height()+10;
+ {
+ aHeadBar.SetPosPixel( Point( 0, nY ) );
+ aHeadBar.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Sender" ) ), 150 );
+ aHeadBar.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Subject" ) ), 150, HIB_CENTER | HIB_VCENTER | HIB_CLICKABLE );
+ aHeadBar.InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Date" ) ), 75 );
+ aHeadBar.InsertItem( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "Size" ) ), 60, HIB_RIGHT | HIB_VCENTER | HIB_CLICKABLE );
+ aHeadBar.InsertItem( 9999, String(), HEADERBAR_FULLSIZE, HIB_RIGHT | HIB_VCENTER | HIB_FIXEDPOS );
+ aHeadBar.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
+ aHeadBar.Show();
+ nY += aHeadBar.GetSizePixel().Height() += 10;
+ }
+
+ {
+ aColorList.SetPosSizePixel( Point( 10, nY ), Size( 130, 180 ) );
+ aColorList.SetUpdateMode( FALSE );
+ aColorList.InsertEntry( Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
+ aColorList.InsertEntry( Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
+ aColorList.InsertEntry( Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
+ aColorList.InsertEntry( Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
+ aColorList.InsertEntry( Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
+ aColorList.InsertEntry( Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
+ aColorList.InsertEntry( Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
+ aColorList.InsertEntry( Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
+ aColorList.InsertEntry( Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
+ aColorList.InsertEntry( Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
+ aColorList.InsertEntry( Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
+ aColorList.SetUpdateMode( TRUE );
+ aColorList.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
+ aColorList.Show();
+ }
+
+ {
+ aLineList.SetPosSizePixel( Point( 150, nY ), Size( 130, 180 ) );
+ aLineList.SetUnit( FUNIT_POINT );
+ aLineList.SetSourceUnit( FUNIT_TWIP );
+ aLineList.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "Hairline" ) ) );
+ aLineList.InsertEntry( 1500 );
+ aLineList.InsertEntry( 3000 );
+ aLineList.InsertEntry( 4500 );
+ aLineList.InsertEntry( 6000 );
+ aLineList.InsertEntry( 7500 );
+ aLineList.InsertEntry( 9000 );
+ aLineList.InsertEntry( 1500, 1500, 1500 );
+ aLineList.InsertEntry( 3000, 1500, 1500 );
+ aLineList.InsertEntry( 4500, 1500, 1500 );
+ aLineList.InsertEntry( 3000, 3000, 1500 );
+ aLineList.InsertEntry( 4500, 3000, 1500 );
+ aLineList.InsertEntry( 4500, 4500, 1500 );
+ aLineList.Show();
+ }
+
+ {
+ aValueSet.SetPosSizePixel( Point( 290, nY ), Size( 130, 180 ) );
+ aValueSet.InsertItem( 9, Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
+ aValueSet.InsertItem( 10, Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
+ aValueSet.InsertItem( 11, Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
+ aValueSet.InsertItem( 12, Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
+ aValueSet.InsertItem( 13, Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
+ aValueSet.InsertItem( 14, Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
+ aValueSet.InsertItem( 15, Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
+ aValueSet.InsertItem( 16, Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
+ aValueSet.InsertItem( 17, Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
+ aValueSet.InsertItem( 18, Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
+ aValueSet.InsertItem( 19, Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
+ aValueSet.InsertItem( 20, Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
+ aValueSet.InsertItem( 21, Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
+ aValueSet.InsertItem( 22, Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
+ aValueSet.InsertItem( 23, Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
+ aValueSet.InsertItem( 24, Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
+ aValueSet.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "None" ) ) );
+ aValueSet.SetColCount( 4 );
+ aValueSet.SetLineCount( 4 );
+ aValueSet.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
+ aValueSet.Show();
+ }
+
+ {
+ aCalendarField.EnableEmptyFieldValue( TRUE );
+ aCalendarField.SetCalendarStyle( aCalendarField.GetCalendarStyle() | WB_RANGESELECT );
+ aCalendarField.SetSelectHdl( LINK( this, MyWin, CalSelectHdl ) );
+// aCalendarField.SetDate( Date() );
+ aCalendarField.SetEmptyDate();
+ aCalendarField.EnableToday();
+ aCalendarField.EnableNone();
+ aCalendarField.SetPosSizePixel( Point( 430, nY ), Size( 130, 20 ) );
+ aCalendarField.Show();
+ }
+
+ {
+ aCalendarField2.SetDate( Date() );
+ aCalendarField2.SetPosSizePixel( Point( 570, nY ), Size( 130, 20 ) );
+ aCalendarField2.Show();
+ }
+
+ nY += 200;
+ {
+ aTabBar.SetPosSizePixel( Point( 10, nY ),
+ Size( 300, aTabBar.GetSizePixel().Height() ) );
+ aTabBar.InsertPage( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 1" ) ) );
+ aTabBar.InsertPage( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 2" ) ) );
+ aTabBar.InsertPage( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 3" ) ) );
+ aTabBar.InsertPage( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 4" ) ) );
+ aTabBar.InsertPage( 5, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 5" ) ) );
+ aTabBar.InsertPage( 6, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 6" ) ) );
+ aTabBar.InsertPage( 7, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 7" ) ) );
+ aTabBar.InsertPage( 8, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 8" ) ) );
+ aTabBar.InsertPage( 9, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 9" ) ) );
+ aTabBar.InsertPage( 10, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 10" ) ) );
+ aTabBar.InsertPage( 11, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 11" ) ) );
+ aTabBar.InsertPage( 12, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 12" ) ) );
+ aTabBar.InsertPage( 13, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 13" ) ) );
+ aTabBar.InsertPage( 14, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 14" ) ) );
+ aTabBar.InsertPage( 15, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 15" ) ) );
+ aTabBar.InsertPage( 16, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 16" ) ) );
+ aTabBar.InsertPage( 17, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 17" ) ) );
+ aTabBar.InsertPage( 18, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 18" ) ) );
+ aTabBar.InsertPage( 19, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 19" ) ) );
+ aTabBar.InsertPage( 20, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 20" ) ) );
+ aTabBar.InsertPage( 21, XubString( RTL_CONSTASCII_USTRINGPARAM( "This is a long Page Text" ) ) );
+ aTabBar.InsertPage( 22, XubString( RTL_CONSTASCII_USTRINGPARAM( "Short Text" ) ) );
+ aTabBar.InsertPage( 23, XubString( RTL_CONSTASCII_USTRINGPARAM( "And now a very very long Page Text" ) ) );
+ aTabBar.InsertPage( 24, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 24" ) ) );
+ aTabBar.InsertPage( 25, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 25" ) ) );
+ aTabBar.InsertPage( 26, XubString( RTL_CONSTASCII_USTRINGPARAM( "And now a very long Page Text" ) ) );
+ aTabBar.InsertPage( 27, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 27" ) ) );
+ aTabBar.InsertPage( 28, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 28" ) ) );
+ aTabBar.InsertPage( 29, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 29" ) ) );
+ aTabBar.InsertPage( 30, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 30" ) ) );
+ aTabBar.EnableEditMode();
+ aTabBar.Show();
+ }
+
+ nY += 35;
+ {
+ aPrgsBar.SetPosPixel( Point( 10, nY ) );
+ aPrgsBar.Show();
+ }
+
+ nY += 40;
+ {
+ aFontBtn.SetPosSizePixel( Point( 10, nY ), Size( 100, 30 ) );
+ aFontBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Font..." ) ) );
+ aFontBtn.SetClickHdl( LINK( this, MyWin, Test ) );
+ aFontBtn.Show();
+
+ aCalendarBtn.SetPosSizePixel( Point( 120, nY ), Size( 100, 30 ) );
+ aCalendarBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Calendar" ) ) );
+ aCalendarBtn.SetClickHdl( LINK( this, MyWin, Test ) );
+ aCalendarBtn.Show();
+
+ aPrnSetupBtn.SetPosSizePixel( Point( 230, nY ), Size( 100, 30 ) );
+ aPrnSetupBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "PrnSetup..." ) ) );
+ aPrnSetupBtn.SetClickHdl( LINK( this, MyWin, Test ) );
+ aPrnSetupBtn.Show();
+
+ aPrnDlgBtn.SetPosSizePixel( Point( 340, nY ), Size( 100, 30 ) );
+ aPrnDlgBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Print...." ) ) );
+ aPrnDlgBtn.SetClickHdl( LINK( this, MyWin, Test ) );
+ aPrnDlgBtn.Show();
+ }
+}
+
+// -----------------------------------------------------------------------
+
+MyWin::~MyWin()
+{
+ if ( pCalendar )
+ delete pCalendar;
+
+ if ( pMenu )
+ {
+ delete pMenu;
+ delete pNameMenu;
+ delete pStyleMenu;
+ delete pSizeMenu;
+ }
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyWin, Test, PushButton*, pBtn )
+{
+ if ( pBtn == &aFontBtn )
+ {
+ MyFontDialog* pDlg = new MyFontDialog( this );
+ pDlg->Execute();
+ delete pDlg;
+ }
+ else if ( pBtn == &aCalendarBtn )
+ {
+ if ( !pCalendar )
+ pCalendar = new MyCalendar( this );
+ pCalendar->ToTop();
+ pCalendar->Show();
+ }
+ else if ( pBtn == &aPrnSetupBtn )
+ {
+ PrinterSetupDialog* pDlg = new PrinterSetupDialog( this );
+ pDlg->SetPrinter( &aPrn );
+ pDlg->Execute();
+ delete pDlg;
+ }
+ else if ( pBtn == &aPrnDlgBtn )
+ {
+ PrintDialog* pDlg = new PrintDialog( this );
+ pDlg->SetPrinter( &aPrn );
+ pDlg->EnableRange( PRINTDIALOG_ALL );
+ pDlg->EnableRange( PRINTDIALOG_RANGE );
+ pDlg->Execute();
+ delete pDlg;
+ }
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyWin, SelectHdl, Window*, pCtrl )
+{
+ if ( pCtrl == &aColorList )
+ {
+ Color aColor = aColorList.GetSelectEntryColor();
+ aValueSet.SetColor( aColor );
+ aLineList.SetColor( aColor );
+ }
+ else if ( pCtrl == &aValueSet )
+ {
+ USHORT nId = aValueSet.GetSelectItemId();
+ if ( nId > 8 )
+ {
+ Color aColor = aValueSet.GetItemColor( nId );
+ aValueSet.SetFillColor( aColor );
+ }
+ }
+ else if ( pCtrl == &aHeadBar )
+ {
+ USHORT nCurItemId = aHeadBar.GetCurItemId();
+ for ( USHORT i = 0; i < aHeadBar.GetItemCount(); i++ )
+ {
+ USHORT nItemId = aHeadBar.GetItemId( i );
+ HeaderBarItemBits nBits = aHeadBar.GetItemBits( nItemId );
+ if ( nItemId == nCurItemId )
+ {
+ HeaderBarItemBits nOldBits = nBits;
+ nBits &= ~(HIB_DOWNARROW | HIB_UPARROW);
+ if ( nOldBits & HIB_DOWNARROW )
+ nBits |= HIB_UPARROW;
+ else
+ nBits |= HIB_DOWNARROW;
+ }
+ else
+ nBits &= ~(HIB_DOWNARROW | HIB_UPARROW);
+ aHeadBar.SetItemBits( nItemId, nBits );
+ }
+ }
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( MyWin, CalSelectHdl, CalendarField*, pCtrl )
+{
+ if ( pCtrl == &aCalendarField )
+ {
+ Calendar* pCalendar = pCtrl->GetCalendar();
+ aCalendarField2.SetDate( pCalendar->GetSelectDate( pCalendar->GetSelectDateCount()-1 ) );
+ }
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::ContextMenu( const Point& rPos )
+{
+ FontList aList( this );
+
+ if ( !pMenu )
+ {
+ pMenu = new PopupMenu;
+ pNameMenu = new FontNameMenu;
+ pStyleMenu = new FontStyleMenu;
+ pSizeMenu = new FontSizeMenu;
+
+ pMenu->InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Font" ) ) );
+ pMenu->InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Attribute" ) ) );
+ pMenu->InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) );
+ pMenu->SetPopupMenu( 1, pNameMenu );
+ pMenu->SetPopupMenu( 2, pStyleMenu );
+ pMenu->SetPopupMenu( 3, pSizeMenu );
+
+ pNameMenu->Fill( &aList );
+ pNameMenu->SetCurName( aList.GetFontName( 0 ).GetName() );
+
+ pStyleMenu->InsertSeparator();
+ pStyleMenu->InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Underline" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
+ pStyleMenu->InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Stri~keout" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
+ pStyleMenu->InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Shadow" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
+ pStyleMenu->InsertItem( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Outline" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
+ }
+
+ pStyleMenu->Fill( pNameMenu->GetCurName(), &aList );
+ pSizeMenu->Fill( aList.Get( pNameMenu->GetCurName(),
+ pStyleMenu->GetCurStyle() ), &aList );
+
+ pMenu->Execute( this, rPos );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Command( const CommandEvent& rCEvt )
+{
+ if ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU )
+ ContextMenu( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
+{
+ aValueSet.StartSelection();
+ WorkWindow::MouseButtonDown( rMEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::KeyInput( const KeyEvent& rKEvt )
+{
+ if ( rKEvt.GetKeyCode().GetCode() == KEY_P )
+ {
+ for ( USHORT i = 0; i <= 130; i += 2 )
+ {
+ for ( USHORT j = 0; j < 6000; j++ )
+ {
+ aPrgsBar.SetValue( i );
+ Application::Reschedule();
+ }
+ }
+ }
+ else if ( rKEvt.GetCharCode() == '+' )
+ aHeadBar.SetOffset( aHeadBar.GetOffset()+1 );
+ else if ( rKEvt.GetCharCode() == '-' )
+ aHeadBar.SetOffset( aHeadBar.GetOffset()-1 );
+
+ WorkWindow::KeyInput( rKEvt );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Paint( const Rectangle& rRect )
+{
+ WorkWindow::Paint( rRect );
+}
+
+// -----------------------------------------------------------------------
+
+void MyWin::Resize()
+{
+ Size aWinSize = GetOutputSizePixel();
+
+ aBox.SetSizePixel( Size( aWinSize.Width(), aBoxSize.Height() ) );
+
+ Size aSize = aBar.GetSizePixel();
+ aBar.SetPosSizePixel( Point( 0, aWinSize.Height()-aSize.Height() ),
+ Size( aWinSize.Width(), aSize.Height() ) );
+
+ Size aBarSize = aSize;
+ Point aPos = aHeadBar.GetPosPixel();
+ aSize = aHeadBar.GetSizePixel();
+ aHeadBar.SetSizePixel( Size( aWinSize.Width(), aSize.Height() ) );
+ aHeadBar.SetDragSize( aWinSize.Height() - aSize.Height() - aPos.Y() - aBarSize.Height() );
+
+ aPos = aPrgsBar.GetPosPixel();
+ aSize = aPrgsBar.GetSizePixel();
+ if ( aPos.X() < aWinSize.Width()-10 )
+ aPrgsBar.SetSizePixel( Size( aWinSize.Width()-aPos.X()-10, aSize.Height() ) );
+}
+
+// -----------------------------------------------------------------------
+
+MyApp aMyApp;