| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_svtools.hxx" |
| #include <stdio.h> |
| #include <cppuhelper/servicefactory.hxx> |
| #include <comphelper/processfactory.hxx> |
| |
| #include <unotools/calendarwrapper.hxx> |
| #include <unotools/localedatawrapper.hxx> |
| |
| #include <vcl/wrkwin.hxx> |
| #include <vcl/dialog.hxx> |
| #include <vcl/msgbox.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 <svtools/valueset.hxx> |
| #include <svtools/headbar.hxx> |
| #include <prgsbar.hxx> |
| #include <calendar.hxx> |
| #include <svtools/prnsetup.hxx> |
| #include <svtools/printdlg.hxx> |
| |
| using namespace ::com::sun::star; |
| |
| // ----------------------------------------------------------------------- |
| |
| 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 sal_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(); |
| }; |
| |
| // ----------------------------------------------------------------------- |
| |
| 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() |
| { |
| try |
| { |
| ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > |
| xMSF = cppu::createRegistryServiceFactory( |
| rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True ); |
| |
| ::comphelper::setProcessServiceFactory( xMSF ); |
| |
| 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(); |
| } |
| catch ( com::sun::star::uno::Exception & e ) |
| { |
| fprintf( stderr, "Error during bootstrapping servicemanager: %s\n" , |
| rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).getStr() ); |
| } |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| 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 ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| sal_Bool ShowBitmap::Close() |
| { |
| Hide(); |
| delete this; |
| return sal_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.GetOrientation() ) |
| { |
| aText.Append( String::CreateFromInt32( rFont.GetOrientation()/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_3DLOOK | 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( sal_True ); |
| aFontBox.EnableSymbols( sal_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( sal_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( sal_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( (ColorData)aColorBox.GetSelectEntryPos() ) ); |
| aFont.SetWordLineMode( aWordLineBox.IsChecked() ); |
| aFont.SetShadow( aShadowBox.IsChecked() ); |
| aFont.SetOutline( aOutlineBox.IsChecked() ); |
| aFont.SetOrientation( aLineOrientSlider.GetOrientation() ); |
| aFont.SetTransparent( sal_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 sal_True; |
| else |
| return sal_False; |
| } |
| else |
| return sal_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() ) ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| 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 CalendarWrapper& rCal = aCalendar.GetCalendarWrapper(); |
| 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 ); |
| sal_Int16 nDays = rCal.getNumberOfDaysInWeek(); |
| uno::Sequence< i18n::CalendarItem> xItems = rCal.getDays(); |
| const i18n::CalendarItem* pArr = xItems.getArray(); |
| for ( sal_Int16 i = 0; i < nDays; i++ ) |
| aWeekStartMenu.InsertItem( 10+(sal_uInt16)i, pArr[i].FullName, MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekStartMenu.CheckItem( 10+(sal_uInt16)rCal.getFirstDayOfWeek() ); |
| aWeekCountMenu.InsertItem( 20, XubString( RTL_CONSTASCII_USTRINGPARAM( "~1. Januar" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 21, XubString( RTL_CONSTASCII_USTRINGPARAM( "~2 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 22, XubString( RTL_CONSTASCII_USTRINGPARAM( "~3 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 23, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste 4 ~Tage-Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 24, XubString( RTL_CONSTASCII_USTRINGPARAM( "~5 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 25, XubString( RTL_CONSTASCII_USTRINGPARAM( "~6 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| aWeekCountMenu.InsertItem( 26, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste ~volle Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK ); |
| //was: one of 0, 1, 2; aWeekCountMenu.CheckItem( 20+(sal_uInt16)rIntn.GetWeekCountStart() ); |
| aWeekCountMenu.CheckItem( 20+(sal_uInt16)rCal.getMinimumNumberOfDaysForFirstWeek() ); |
| 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 ) |
| { |
| sal_uInt16 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::GetAppLocaleDataWrapper().getDate( aDate ); |
| aCalendar.AddDateInfo( aDate, aStr, NULL, &aFrameColor, DIB_BOLD ); |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| IMPL_LINK( MyCalendar, MenuSelectHdl, Menu*, pMenu ) |
| { |
| sal_uInt16 nItemId = pMenu->GetCurItemId(); |
| |
| if ( (nItemId >= 10) && (nItemId <= 19) ) |
| aCalendar.SetWeekStart( nItemId-10 ); |
| else if ( (nItemId >= 20) && (nItemId <= 29) ) |
| aCalendar.SetMinimumNumberOfDaysInWeek( nItemId-20 ); |
| |
| return 0; |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void MyCalendar::Resize() |
| { |
| aCalendar.SetSizePixel( GetOutputSizePixel() ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| MyWin::MyWin( Window* pParent, WinBits aWinStyle ) : |
| WorkWindow(pParent, aWinStyle | WB_3DLOOK ), |
| aBox( this, WB_BORDER | WB_3DLOOK ), |
| aBar( this, WB_BORDER | WB_3DLOOK | WB_RIGHT ), |
| aHeadBar( this, WB_BORDER | WB_3DLOOK | 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( sal_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( sal_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( sal_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, false ); |
| 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 ) |
| { |
| sal_uInt16 nId = aValueSet.GetSelectItemId(); |
| if ( nId > 8 ) |
| { |
| Color aColor = aValueSet.GetItemColor( nId ); |
| aValueSet.SetFillColor( aColor ); |
| } |
| } |
| else if ( pCtrl == &aHeadBar ) |
| { |
| sal_uInt16 nCurItemId = aHeadBar.GetCurItemId(); |
| for ( sal_uInt16 i = 0; i < aHeadBar.GetItemCount(); i++ ) |
| { |
| sal_uInt16 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* l_pCalendar = pCtrl->GetCalendar(); |
| aCalendarField2.SetDate( l_pCalendar->GetSelectDate( l_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 ( sal_uInt16 i = 0; i <= 130; i += 2 ) |
| { |
| for ( sal_uInt16 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; |