1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svtools.hxx"
26 #include <stdio.h>
27 #include <cppuhelper/servicefactory.hxx>
28 #include <comphelper/processfactory.hxx>
29
30 #include <unotools/calendarwrapper.hxx>
31 #include <unotools/localedatawrapper.hxx>
32
33 #include <vcl/wrkwin.hxx>
34 #include <vcl/dialog.hxx>
35 #include <vcl/msgbox.hxx>
36 #include <vcl/print.hxx>
37 #include <vcl/svapp.hxx>
38 #include <vcl/help.hxx>
39 #include <vcl/fixed.hxx>
40 #include <vcl/button.hxx>
41 #include <vcl/scrbar.hxx>
42 #include <vcl/slider.hxx>
43 #include <vcl/group.hxx>
44 #include <vcl/toolbox.hxx>
45 #include <vcl/status.hxx>
46 #include <stdmenu.hxx>
47 #include <ctrltool.hxx>
48 #include <ctrlbox.hxx>
49 #include <tabbar.hxx>
50 #include <svtools/valueset.hxx>
51 #include <svtools/headbar.hxx>
52 #include <prgsbar.hxx>
53 #include <calendar.hxx>
54 #include <svtools/prnsetup.hxx>
55 #include <svtools/printdlg.hxx>
56
57 using namespace ::com::sun::star;
58
59 // -----------------------------------------------------------------------
60
61 class MyApp : public Application
62 {
63 public:
64 void Main();
65 };
66
67 // -----------------------------------------------------------------------
68
69 class ShowBitmap : public WorkWindow
70 {
71 Bitmap aBmp;
72
73 public:
74 ShowBitmap( Window* pParent, const Bitmap& rBmp );
75
76 virtual void Paint( const Rectangle& );
77 virtual sal_Bool Close();
78 };
79
80 // -----------------------------------------------------------------------
81
82 class ShowFont : public Control
83 {
84 public:
85 ShowFont( Window* pParent );
86
87 virtual void Paint( const Rectangle& );
SetFont(const Font & rFont)88 void SetFont( const Font& rFont )
89 { Invalidate(); Control::SetFont( rFont ); }
90 };
91
92 // --- class OrientSlider ------------------------------------------------
93
94 class OrientSlider : public Slider
95 {
96 public:
97 OrientSlider( Window* pParent );
98
GetOrientation() const99 short GetOrientation() const { return (short)GetThumbPos(); }
100 };
101
102 // -----------------------------------------------------------------------
103
OrientSlider(Window * pParent)104 OrientSlider::OrientSlider( Window* pParent ) :
105 Slider( pParent, WB_HORZ | WB_DRAG )
106 {
107 SetThumbPos( 0 );
108 SetLineSize( 10 );
109 SetPageSize( 100 );
110 SetRange( Range( 0, 3600 ) );
111 }
112
113 // -----------------------------------------------------------------------
114
115 class MyFontDialog : public ModalDialog
116 {
117 private:
118 FontList* pList;
119 Font aCurFont;
120 Printer aPrinter;
121 FontNameBox aFontBox;
122 FontStyleBox aStyleBox;
123 FontSizeBox aSizeBox;
124 ListBox aUnderlineBox;
125 ListBox aStrikeoutBox;
126 CheckBox aWordLineBox;
127 CheckBox aShadowBox;
128 CheckBox aOutlineBox;
129 ColorListBox aColorBox;
130 GroupBox aEffectBox;
131 OrientSlider aLineOrientSlider;
132 ShowFont aShowFont;
133 GroupBox aSampleBox;
134 FixedText aMapText;
135 OKButton aOKBtn;
136 CancelButton aCancelBtn;
137
138 public:
139 MyFontDialog( Window* pParent );
140
141 DECL_LINK( SelectFont, ComboBox* );
142 DECL_LINK( SelectStyle, ComboBox* );
143 DECL_LINK( AttrHdl, Window * );
144 void SetAttr();
145 short Execute();
146 };
147
148 // -----------------------------------------------------------------------
149
150 class MyTabBar : public TabBar
151 {
152 public:
MyTabBar(Window * pParent,WinBits nWinStyle=WB_STDTABBAR)153 MyTabBar( Window* pParent,
154 WinBits nWinStyle = WB_STDTABBAR ) :
155 TabBar( pParent, nWinStyle ) {}
156
157 virtual long DeactivatePage();
158 virtual long AllowRenaming();
159 virtual void Split();
160 };
161
162 // -----------------------------------------------------------------------
163
164 class MyCalendar : public WorkWindow
165 {
166 MenuBar aMenuBar;
167 PopupMenu aWeekStartMenu;
168 PopupMenu aWeekCountMenu;
169 Calendar aCalendar;
170 Color aInfoColor;
171 Color aHolidayColor;
172 Color aFrameColor;
173
174 public:
175 MyCalendar( Window* pParent );
176 ~MyCalendar();
177
178 DECL_LINK( RequestDateInfoHdl, Calendar* );
179 DECL_LINK( DoubleClickHdl, Calendar* );
180 DECL_LINK( MenuSelectHdl, Menu* );
181
182 void Resize();
183 };
184
185 // -----------------------------------------------------------------------
186
187 class MyWin : public WorkWindow
188 {
189 private:
190 Printer aPrn;
191 ToolBox aBox;
192 StatusBar aBar;
193 HeaderBar aHeadBar;
194 ColorListBox aColorList;
195 LineListBox aLineList;
196 ValueSet aValueSet;
197 CalendarField aCalendarField;
198 CalendarField aCalendarField2;
199 MyTabBar aTabBar;
200 ProgressBar aPrgsBar;
201 PushButton aFontBtn;
202 PushButton aCalendarBtn;
203 PushButton aPrnSetupBtn;
204 PushButton aPrnDlgBtn;
205 Size aBoxSize;
206 MyCalendar* pCalendar;
207 PopupMenu* pMenu;
208 FontNameMenu* pNameMenu;
209 FontStyleMenu* pStyleMenu;
210 FontSizeMenu* pSizeMenu;
211
212 public:
213 MyWin( Window* pParent, WinBits aWinStyle );
214 ~MyWin();
215
216 DECL_LINK( Test, PushButton* );
217 DECL_LINK( SelectHdl, Window* );
218 DECL_LINK( CalSelectHdl, CalendarField* );
219 void ContextMenu( const Point& rPos );
220
221 void Command( const CommandEvent& rCEvt );
222 void MouseButtonDown( const MouseEvent& rMEvt );
223 void KeyInput( const KeyEvent& rKEvt );
224 void Paint( const Rectangle& rRect );
225 void Resize();
226 };
227
228 // -----------------------------------------------------------------------
229
Main()230 void MyApp::Main()
231 {
232 try
233 {
234 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
235 xMSF = cppu::createRegistryServiceFactory(
236 rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
237
238 ::comphelper::setProcessServiceFactory( xMSF );
239
240 Help aHelp;
241 SetHelp( &aHelp );
242 Help::EnableContextHelp();
243 Help::EnableExtHelp();
244 Help::EnableBalloonHelp();
245 Help::EnableQuickHelp();
246
247 MyWin aMainWin( NULL, WinBits( WB_APP | WB_STDWORK | WB_CLIPCHILDREN ) );
248 aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "SVTOOLS - Workbench" ) ) );
249 aMainWin.GrabFocus();
250 aMainWin.Show();
251
252 Execute();
253 }
254 catch ( com::sun::star::uno::Exception & e )
255 {
256 fprintf( stderr, "Error during bootstrapping servicemanager: %s\n" ,
257 rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).getStr() );
258 }
259 }
260
261 // -----------------------------------------------------------------------
262
ShowBitmap(Window * pParent,const Bitmap & rBmp)263 ShowBitmap::ShowBitmap( Window* pParent, const Bitmap& rBmp ) :
264 WorkWindow( pParent, WB_STDWORK ),
265 aBmp( rBmp )
266 {
267 SetOutputSizePixel( rBmp.GetSizePixel() );
268 SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Bitmap-Viewer" ) ) );
269 Show();
270 }
271
272 // -----------------------------------------------------------------------
273
Paint(const Rectangle &)274 void ShowBitmap::Paint( const Rectangle& )
275 {
276 DrawBitmap( Point(), GetOutputSizePixel(), aBmp );
277 }
278
279 // -----------------------------------------------------------------------
280
Close()281 sal_Bool ShowBitmap::Close()
282 {
283 Hide();
284 delete this;
285 return sal_True;
286 }
287
288 // -----------------------------------------------------------------------
289
ShowFont(Window * pParent)290 ShowFont::ShowFont( Window* pParent ) :
291 Control( pParent, WB_BORDER )
292 {
293 SetMapMode( MapMode( MAP_POINT, Point(),
294 Fraction( 1, 10 ), Fraction( 1, 10 ) ) );
295 SetBackground( Wallpaper( Color( COL_WHITE ) ) );
296 }
297
298 // -----------------------------------------------------------------------
299
Paint(const Rectangle &)300 void ShowFont::Paint( const Rectangle& )
301 {
302 const Font& rFont = GetFont();
303 String aText;
304 Size aWindowSize( GetOutputSize() );
305 long x,y;
306
307 if ( rFont.GetOrientation() )
308 {
309 aText.Append( String::CreateFromInt32( rFont.GetOrientation()/10 ) );
310 aText.AppendAscii( " degree." );
311
312 x = aWindowSize.Width()/2;
313 y = aWindowSize.Height()/2;
314 }
315 else
316 {
317 aText = rFont.GetName();
318 if ( !aText.Len() )
319 aText.AssignAscii( "Sample" );
320
321 x = aWindowSize.Width()/2 - GetTextWidth( aText )/2;
322 y = aWindowSize.Height()/2 - GetTextHeight()/2;
323 }
324
325 DrawText( Point( x, y ), aText );
326 }
327
328 // -----------------------------------------------------------------------
329
MyFontDialog(Window * pParent)330 MyFontDialog::MyFontDialog( Window* pParent ) :
331 ModalDialog( pParent, WB_3DLOOK | WB_STDMODAL ),
332 aFontBox( this ),
333 aStyleBox( this ),
334 aSizeBox( this ),
335 aUnderlineBox( this, WB_DROPDOWN ),
336 aStrikeoutBox( this, WB_DROPDOWN ),
337 aWordLineBox( this ),
338 aShadowBox( this ),
339 aOutlineBox( this ),
340 aColorBox( this, WB_DROPDOWN ),
341 aEffectBox( this ),
342 aLineOrientSlider( this ),
343 aShowFont( this ),
344 aSampleBox( this ),
345 aMapText( this, WB_LEFT | WB_WORDBREAK ),
346 aOKBtn( this, WB_DEFBUTTON ),
347 aCancelBtn( this )
348 {
349 pList = NULL;
350
351 aFontBox.EnableWYSIWYG( sal_True );
352 aFontBox.EnableSymbols( sal_True );
353 aFontBox.SetPosSizePixel( Point( 10, 10 ), Size( 140, 140 ) );
354 aFontBox.SetSelectHdl( LINK( this, MyFontDialog, SelectFont ) );
355 aFontBox.SetLoseFocusHdl( LINK( this, MyFontDialog, SelectFont ) );
356 aFontBox.Show();
357
358 aStyleBox.SetPosSizePixel( Point( 160, 10 ), Size( 100, 140 ) );
359 aStyleBox.SetSelectHdl( LINK( this, MyFontDialog, SelectStyle ) );
360 aStyleBox.SetLoseFocusHdl( LINK( this, MyFontDialog, SelectStyle ) );
361 aStyleBox.Show();
362
363 aSizeBox.SetPosSizePixel( Point( 270, 10 ), Size( 60, 140 ) );
364 aSizeBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
365 aSizeBox.SetLoseFocusHdl( LINK( this, MyFontDialog, AttrHdl ) );
366 aSizeBox.Show();
367
368 aUnderlineBox.SetPosSizePixel( Point( 15, 180 ), Size( 130, 100 ) );
369 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_NONE" ) ) );
370 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_SINGLE" ) ) );
371 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOUBLE" ) ) );
372 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOTTED" ) ) );
373 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DONTKNOW" ) ) );
374 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASH" ) ) );
375 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_LONGDASH" ) ) );
376 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASHDOT" ) ) );
377 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DASHDOTDOT" ) ) );
378 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_SMALLWAVE" ) ) );
379 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_WAVE" ) ) );
380 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_DOUBLEWAVE" ) ) );
381 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLD" ) ) );
382 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDOTTED" ) ) );
383 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASH" ) ) );
384 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDLONGDASH" ) ) );
385 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASHDOT" ) ) );
386 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDDASHDOTDOT" ) ) );
387 aUnderlineBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "UNDERLINE_BOLDWAVE" ) ) );
388 aUnderlineBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
389 aUnderlineBox.Show();
390
391 aStrikeoutBox.SetPosSizePixel( Point( 15, 210 ), Size( 130, 100 ) );
392 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_NONE" ) ) );
393 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_SINGLE" ) ) );
394 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_DOUBLE" ) ) );
395 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_DONTKNOW" ) ) );
396 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_BOLD" ) ) );
397 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_SLASH" ) ) );
398 aStrikeoutBox.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "STRIKEOUT_X" ) ) );
399 aStrikeoutBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
400 aStrikeoutBox.Show();
401
402 aWordLineBox.SetPosSizePixel( Point( 15, 240 ), Size( 130, 19 ) );
403 aWordLineBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Only ~Words" ) ) );
404 aWordLineBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
405 aWordLineBox.Show();
406
407 aShadowBox.SetPosSizePixel( Point( 15, 260 ), Size( 130, 19 ) );
408 aShadowBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "~Shadow" ) ) );
409 aShadowBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
410 aShadowBox.Show();
411
412 aOutlineBox.SetPosSizePixel( Point( 15, 280 ), Size( 130, 19 ) );
413 aOutlineBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "~Outline" ) ) );
414 aOutlineBox.SetClickHdl( LINK( this, MyFontDialog, AttrHdl ) );
415 aOutlineBox.Show();
416
417 {
418 aColorBox.SetPosSizePixel( Point( 15, 305 ), Size( 130, 100 ) );
419 aColorBox.SetSelectHdl( LINK( this, MyFontDialog, AttrHdl ) );
420 aColorBox.SetUpdateMode( sal_False );
421 aColorBox.InsertEntry( Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
422 aColorBox.InsertEntry( Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
423 aColorBox.InsertEntry( Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
424 aColorBox.InsertEntry( Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
425 aColorBox.InsertEntry( Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
426 aColorBox.InsertEntry( Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
427 aColorBox.InsertEntry( Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
428 aColorBox.InsertEntry( Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
429 aColorBox.InsertEntry( Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
430 aColorBox.InsertEntry( Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
431 aColorBox.InsertEntry( Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
432 aColorBox.InsertEntry( Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
433 aColorBox.InsertEntry( Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
434 aColorBox.InsertEntry( Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
435 aColorBox.InsertEntry( Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
436 aColorBox.InsertEntry( Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
437 aColorBox.SetUpdateMode( sal_True );
438 aColorBox.Show();
439 }
440
441 aEffectBox.SetPosSizePixel( Point( 10, 160 ), Size( 140, 175 ) );
442 aEffectBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Effects" ) ) );
443 aEffectBox.Show();
444
445 Size aSliderSize = aLineOrientSlider.GetSizePixel();
446 aLineOrientSlider.SetPosSizePixel( Point( 160, 335-aSliderSize.Height() ),
447 Size( 250, aSliderSize.Height() ) );
448 aLineOrientSlider.SetSlideHdl( LINK( this, MyFontDialog, AttrHdl ) );
449 aLineOrientSlider.Show();
450
451 aShowFont.SetPosSizePixel( Point( 165, 180 ), Size( 240, 70 ) );
452 aShowFont.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Sample" ) ) );
453 aShowFont.Show();
454
455 aSampleBox.SetPosSizePixel( Point( 160, 160 ), Size( 250, 100 ) );
456 aSampleBox.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Sample" ) ) );
457 aSampleBox.Show();
458
459 aMapText.SetPosSizePixel( Point( 160, 270 ), Size( 250, 35 ) );
460 aMapText.Show();
461
462 aOKBtn.SetPosSizePixel( Point( 340, 10 ), Size( 70, 25 ) );
463 aOKBtn.Show();
464
465 aCancelBtn.SetPosSizePixel( Point( 340, 40 ), Size( 70, 25 ) );
466 aCancelBtn.Show();
467
468 SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "FontDialog" ) ) );
469 SetOutputSizePixel( Size( 420, 345 ) );
470 }
471
472 // -----------------------------------------------------------------------
473
IMPL_LINK(MyFontDialog,SelectFont,ComboBox *,EMPTYARG)474 IMPL_LINK( MyFontDialog, SelectFont, ComboBox*, EMPTYARG )
475 {
476 aStyleBox.Fill( aFontBox.GetText(), pList );
477 FontInfo aInfo = pList->Get( aFontBox.GetText(), aStyleBox.GetText() );
478 aSizeBox.Fill( &aInfo, pList );
479 SetAttr();
480 return 0;
481 }
482
483 // -----------------------------------------------------------------------
484
IMPL_LINK(MyFontDialog,SelectStyle,ComboBox *,EMPTYARG)485 IMPL_LINK( MyFontDialog, SelectStyle, ComboBox*, EMPTYARG )
486 {
487 FontInfo aInfo = pList->Get( aFontBox.GetText(), aStyleBox.GetText() );
488 aSizeBox.Fill( &aInfo, pList );
489 SetAttr();
490 return 0;
491 }
492
493 // -----------------------------------------------------------------------
494
IMPL_LINK(MyFontDialog,AttrHdl,Window *,EMPTYARG)495 IMPL_LINK( MyFontDialog, AttrHdl, Window*, EMPTYARG )
496 {
497 SetAttr();
498 return 0;
499 }
500
501 // -----------------------------------------------------------------------
502
SetAttr()503 void MyFontDialog::SetAttr()
504 {
505 FontInfo aFont( pList->Get( aFontBox.GetText(), aStyleBox.GetText() ) );
506 aFont.SetSize( Size( 0, aSizeBox.GetValue() ) );
507 aFont.SetUnderline( (FontUnderline)aUnderlineBox.GetSelectEntryPos() );
508 aFont.SetStrikeout( (FontStrikeout)aStrikeoutBox.GetSelectEntryPos() );
509 aFont.SetColor( Color( (ColorData)aColorBox.GetSelectEntryPos() ) );
510 aFont.SetWordLineMode( aWordLineBox.IsChecked() );
511 aFont.SetShadow( aShadowBox.IsChecked() );
512 aFont.SetOutline( aOutlineBox.IsChecked() );
513 aFont.SetOrientation( aLineOrientSlider.GetOrientation() );
514 aFont.SetTransparent( sal_True );
515 aMapText.SetText( pList->GetFontMapText( aFont ) );
516 aShowFont.SetFont( aFont );
517 }
518
519 // -----------------------------------------------------------------------
520
Execute()521 short MyFontDialog::Execute()
522 {
523 pList = new FontList( &aPrinter, this );
524 aFontBox.Fill( pList );
525 aSizeBox.SetValue( 120 );
526 aUnderlineBox.SelectEntryPos( 0 );
527 aStrikeoutBox.SelectEntryPos( 0 );
528 aColorBox.SelectEntryPos( 0 );
529 SelectFont( &aFontBox );
530 short nRet = ModalDialog::Execute();
531 delete pList;
532 return nRet;
533 }
534
535 // -----------------------------------------------------------------------
536
DeactivatePage()537 long MyTabBar::DeactivatePage()
538 {
539 if ( GetCurPageId() == 6 )
540 {
541 QueryBox aQueryBox( this, WB_YES_NO | WB_DEF_YES,
542 XubString( RTL_CONSTASCII_USTRINGPARAM( "Deactivate" ) ) );
543 if ( aQueryBox.Execute() == RET_YES )
544 return sal_True;
545 else
546 return sal_False;
547 }
548 else
549 return sal_True;
550 }
551
552 // -----------------------------------------------------------------------
553
AllowRenaming()554 long MyTabBar::AllowRenaming()
555 {
556 XubString aStr( RTL_CONSTASCII_USTRINGPARAM( "Allow renaming: " ) );
557 aStr += GetEditText();
558 QueryBox aQueryBox( this, WB_YES_NO_CANCEL | WB_DEF_YES, aStr );
559 long nRet = aQueryBox.Execute();
560 if ( nRet == RET_YES )
561 return TAB_RENAMING_YES;
562 else if ( nRet == RET_NO )
563 return TAB_RENAMING_NO;
564 else // ( nRet == RET_CANCEL )
565 return TAB_RENAMING_CANCEL;
566 }
567
568 // -----------------------------------------------------------------------
569
Split()570 void MyTabBar::Split()
571 {
572 Size aSize = GetSizePixel();
573 long nWidth = GetSplitSize();
574 long nMaxWidth = GetParent()->GetOutputSizePixel().Width()-50;
575 if ( nWidth < GetMinSize() )
576 nWidth = GetMinSize();
577 else if ( nWidth > nMaxWidth )
578 nWidth = nMaxWidth;
579 SetSizePixel( Size( nWidth, aSize.Height() ) );
580 }
581
582 // -----------------------------------------------------------------------
583
MyCalendar(Window * pParent)584 MyCalendar::MyCalendar( Window* pParent ) :
585 WorkWindow( pParent, WB_STDWORK ),
586 aCalendar( this, WB_TABSTOP | WB_WEEKNUMBER | WB_BOLDTEXT | WB_FRAMEINFO | WB_MULTISELECT ),
587 aInfoColor( COL_LIGHTBLUE ),
588 aHolidayColor( COL_LIGHTRED ),
589 aFrameColor( COL_LIGHTRED )
590 {
591 const CalendarWrapper& rCal = aCalendar.GetCalendarWrapper();
592 aMenuBar.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Wochen~anfang" ) ) );
593 aMenuBar.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Erste Woche" ) ) );
594 aMenuBar.SetPopupMenu( 1, &aWeekStartMenu );
595 aMenuBar.SetPopupMenu( 2, &aWeekCountMenu );
596 sal_Int16 nDays = rCal.getNumberOfDaysInWeek();
597 uno::Sequence< i18n::CalendarItem> xItems = rCal.getDays();
598 const i18n::CalendarItem* pArr = xItems.getArray();
599 for ( sal_Int16 i = 0; i < nDays; i++ )
600 aWeekStartMenu.InsertItem( 10+(sal_uInt16)i, pArr[i].FullName, MIB_AUTOCHECK | MIB_RADIOCHECK );
601 aWeekStartMenu.CheckItem( 10+(sal_uInt16)rCal.getFirstDayOfWeek() );
602 aWeekCountMenu.InsertItem( 20, XubString( RTL_CONSTASCII_USTRINGPARAM( "~1. Januar" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
603 aWeekCountMenu.InsertItem( 21, XubString( RTL_CONSTASCII_USTRINGPARAM( "~2 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
604 aWeekCountMenu.InsertItem( 22, XubString( RTL_CONSTASCII_USTRINGPARAM( "~3 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
605 aWeekCountMenu.InsertItem( 23, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste 4 ~Tage-Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
606 aWeekCountMenu.InsertItem( 24, XubString( RTL_CONSTASCII_USTRINGPARAM( "~5 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
607 aWeekCountMenu.InsertItem( 25, XubString( RTL_CONSTASCII_USTRINGPARAM( "~6 days" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
608 aWeekCountMenu.InsertItem( 26, XubString( RTL_CONSTASCII_USTRINGPARAM( "Erste ~volle Woche" ) ), MIB_AUTOCHECK | MIB_RADIOCHECK );
609 //was: one of 0, 1, 2; aWeekCountMenu.CheckItem( 20+(sal_uInt16)rIntn.GetWeekCountStart() );
610 aWeekCountMenu.CheckItem( 20+(sal_uInt16)rCal.getMinimumNumberOfDaysForFirstWeek() );
611 aMenuBar.SetSelectHdl( LINK( this, MyCalendar, MenuSelectHdl ) );
612 SetMenuBar( &aMenuBar );
613
614 Date aCurDate = aCalendar.GetCurDate();
615 aCalendar.SetRequestDateInfoHdl( LINK( this, MyCalendar, RequestDateInfoHdl ) );
616 aCalendar.SetDoubleClickHdl( LINK( this, MyCalendar, DoubleClickHdl ) );
617 aCalendar.SetSaturdayColor( Color( COL_LIGHTGREEN ) );
618 aCalendar.SetSundayColor( aHolidayColor );
619 aCalendar.AddDateInfo( Date( 1, 1, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Neujahr" ) ), &aHolidayColor, NULL );
620 aCalendar.AddDateInfo( Date( 24, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Heiligabend" ) ), &aInfoColor, NULL );
621 aCalendar.AddDateInfo( Date( 25, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "1. Weihnachttag" ) ), &aHolidayColor, NULL );
622 aCalendar.AddDateInfo( Date( 26, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "2. Weihnachttag" ) ), &aHolidayColor, NULL );
623 aCalendar.AddDateInfo( Date( 31, 12, 0 ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Silvester" ) ), &aInfoColor, NULL );
624 aCalendar.SetPosPixel( Point() );
625 aCalendar.SetFirstDate( Date( 1, 1, aCurDate.GetYear() ) );
626 aCalendar.Show();
627
628 SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Calendar" ) ) );
629 SetOutputSizePixel( aCalendar.CalcWindowSizePixel( 3, 4 ) );
630 }
631
632 // -----------------------------------------------------------------------
633
~MyCalendar()634 MyCalendar::~MyCalendar()
635 {
636 SetMenuBar( NULL );
637 aMenuBar.SetPopupMenu( 1, NULL );
638 aMenuBar.SetPopupMenu( 2, NULL );
639 }
640
641 // -----------------------------------------------------------------------
642
IMPL_LINK(MyCalendar,RequestDateInfoHdl,Calendar *,EMPTYARG)643 IMPL_LINK( MyCalendar, RequestDateInfoHdl, Calendar*, EMPTYARG )
644 {
645 sal_uInt16 nRequestYear = aCalendar.GetRequestYear();
646 if ( (nRequestYear >= 1954) && (nRequestYear <= 1989) )
647 aCalendar.AddDateInfo( Date( 17, 6, nRequestYear ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Tag der deutschen Einheit" ) ), &aHolidayColor, NULL );
648 else if ( nRequestYear >= 1990 )
649 aCalendar.AddDateInfo( Date( 3, 10, nRequestYear ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Tag der deutschen Einheit" ) ), &aHolidayColor, NULL );
650 return 0;
651 }
652
653 // -----------------------------------------------------------------------
654
IMPL_LINK(MyCalendar,DoubleClickHdl,Calendar *,EMPTYARG)655 IMPL_LINK( MyCalendar, DoubleClickHdl, Calendar*, EMPTYARG )
656 {
657 Date aDate = aCalendar.GetCurDate();
658 String aStr( RTL_CONSTASCII_USTRINGPARAM( "Info: " ) );
659 aStr += Application::GetAppLocaleDataWrapper().getDate( aDate );
660 aCalendar.AddDateInfo( aDate, aStr, NULL, &aFrameColor, DIB_BOLD );
661 return 0;
662 }
663
664 // -----------------------------------------------------------------------
665
IMPL_LINK(MyCalendar,MenuSelectHdl,Menu *,pMenu)666 IMPL_LINK( MyCalendar, MenuSelectHdl, Menu*, pMenu )
667 {
668 sal_uInt16 nItemId = pMenu->GetCurItemId();
669
670 if ( (nItemId >= 10) && (nItemId <= 19) )
671 aCalendar.SetWeekStart( nItemId-10 );
672 else if ( (nItemId >= 20) && (nItemId <= 29) )
673 aCalendar.SetMinimumNumberOfDaysInWeek( nItemId-20 );
674
675 return 0;
676 }
677
678 // -----------------------------------------------------------------------
679
Resize()680 void MyCalendar::Resize()
681 {
682 aCalendar.SetSizePixel( GetOutputSizePixel() );
683 }
684
685 // -----------------------------------------------------------------------
686
MyWin(Window * pParent,WinBits aWinStyle)687 MyWin::MyWin( Window* pParent, WinBits aWinStyle ) :
688 WorkWindow(pParent, aWinStyle | WB_3DLOOK ),
689 aBox( this, WB_BORDER | WB_3DLOOK ),
690 aBar( this, WB_BORDER | WB_3DLOOK | WB_RIGHT ),
691 aHeadBar( this, WB_BORDER | WB_3DLOOK | WB_DRAG | WB_BUTTONSTYLE ),
692 aColorList( this ),
693 aLineList( this ),
694 aValueSet( this, WB_TABSTOP | WB_NAMEFIELD | WB_NONEFIELD | WB_BORDER | WB_ITEMBORDER | WB_VSCROLL /* | WB_FLATVALUESET */ ),
695 aCalendarField( this, WB_TABSTOP | WB_SPIN | WB_REPEAT | WB_DROPDOWN | WB_BORDER ),
696 aCalendarField2( this, WB_TABSTOP | WB_SPIN | WB_REPEAT | WB_DROPDOWN | WB_BORDER ),
697 aTabBar( this, WB_BORDER | WB_MULTISELECT | WB_SCROLL | WB_SIZEABLE | WB_DRAG ),
698 aPrgsBar( this ),
699 aFontBtn( this ),
700 aCalendarBtn( this ),
701 aPrnSetupBtn( this ),
702 aPrnDlgBtn( this )
703 {
704 SetBackground( Wallpaper( GetSettings().GetStyleSettings().GetFaceColor() ) );
705
706 pCalendar = NULL;
707 pMenu = NULL;
708
709 Bitmap aBmp;
710 aBox.InsertItem( 1, aBmp );
711 aBox.InsertItem( 2, aBmp );
712 aBox.InsertItem( 3, aBmp );
713 aBox.InsertItem( 4, aBmp );
714 aBox.InsertSeparator();
715 aBox.InsertItem( 5, aBmp );
716 aBox.InsertItem( 6, aBmp );
717 aBox.InsertItem( 7, aBmp );
718 aBox.InsertItem( 8, aBmp );
719 aBox.InsertSpace();
720 aBox.InsertItem( 9, aBmp );
721 aBox.SetPosPixel( Point( 0, 0 ) );
722 aBoxSize = aBox.GetSizePixel();
723 aBox.Show();
724
725 aBar.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Ready" ) ) );
726 aBar.InsertItem( 1, 35 );
727 aBar.InsertItem( 2, 55 );
728 aBar.InsertItem( 3, 55 );
729 aBar.SetItemText( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Text" ) ) );
730 aBar.SetItemText( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "21.01.93" ) ) );
731 aBar.SetItemText( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "12:00:00" ) ) );
732 aBar.Show();
733
734 long nY = aBox.GetSizePixel().Height()+10;
735 {
736 aHeadBar.SetPosPixel( Point( 0, nY ) );
737 aHeadBar.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Sender" ) ), 150 );
738 aHeadBar.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Subject" ) ), 150, HIB_CENTER | HIB_VCENTER | HIB_CLICKABLE );
739 aHeadBar.InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Date" ) ), 75 );
740 aHeadBar.InsertItem( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "Size" ) ), 60, HIB_RIGHT | HIB_VCENTER | HIB_CLICKABLE );
741 aHeadBar.InsertItem( 9999, String(), HEADERBAR_FULLSIZE, HIB_RIGHT | HIB_VCENTER | HIB_FIXEDPOS );
742 aHeadBar.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
743 aHeadBar.Show();
744 nY += aHeadBar.GetSizePixel().Height() += 10;
745 }
746
747 {
748 aColorList.SetPosSizePixel( Point( 10, nY ), Size( 130, 180 ) );
749 aColorList.SetUpdateMode( sal_False );
750 aColorList.InsertEntry( Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
751 aColorList.InsertEntry( Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
752 aColorList.InsertEntry( Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
753 aColorList.InsertEntry( Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
754 aColorList.InsertEntry( Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
755 aColorList.InsertEntry( Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
756 aColorList.InsertEntry( Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
757 aColorList.InsertEntry( Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
758 aColorList.InsertEntry( Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
759 aColorList.InsertEntry( Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
760 aColorList.InsertEntry( Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
761 aColorList.InsertEntry( Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
762 aColorList.InsertEntry( Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
763 aColorList.InsertEntry( Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
764 aColorList.InsertEntry( Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
765 aColorList.InsertEntry( Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
766 aColorList.SetUpdateMode( sal_True );
767 aColorList.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
768 aColorList.Show();
769 }
770
771 {
772 aLineList.SetPosSizePixel( Point( 150, nY ), Size( 130, 180 ) );
773 aLineList.SetUnit( FUNIT_POINT );
774 aLineList.SetSourceUnit( FUNIT_TWIP );
775 aLineList.InsertEntry( XubString( RTL_CONSTASCII_USTRINGPARAM( "Hairline" ) ) );
776 aLineList.InsertEntry( 1500 );
777 aLineList.InsertEntry( 3000 );
778 aLineList.InsertEntry( 4500 );
779 aLineList.InsertEntry( 6000 );
780 aLineList.InsertEntry( 7500 );
781 aLineList.InsertEntry( 9000 );
782 aLineList.InsertEntry( 1500, 1500, 1500 );
783 aLineList.InsertEntry( 3000, 1500, 1500 );
784 aLineList.InsertEntry( 4500, 1500, 1500 );
785 aLineList.InsertEntry( 3000, 3000, 1500 );
786 aLineList.InsertEntry( 4500, 3000, 1500 );
787 aLineList.InsertEntry( 4500, 4500, 1500 );
788 aLineList.Show();
789 }
790
791 {
792 aValueSet.SetPosSizePixel( Point( 290, nY ), Size( 130, 180 ) );
793 aValueSet.InsertItem( 9, Color( COL_BLACK ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Black" ) ) );
794 aValueSet.InsertItem( 10, Color( COL_BLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Blue" ) ) );
795 aValueSet.InsertItem( 11, Color( COL_GREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Green" ) ) );
796 aValueSet.InsertItem( 12, Color( COL_CYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Cyan" ) ) );
797 aValueSet.InsertItem( 13, Color( COL_RED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Red" ) ) );
798 aValueSet.InsertItem( 14, Color( COL_MAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Magenta" ) ) );
799 aValueSet.InsertItem( 15, Color( COL_BROWN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Brown" ) ) );
800 aValueSet.InsertItem( 16, Color( COL_GRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Gray" ) ) );
801 aValueSet.InsertItem( 17, Color( COL_LIGHTGRAY ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGray" ) ) );
802 aValueSet.InsertItem( 18, Color( COL_LIGHTBLUE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightBlue" ) ) );
803 aValueSet.InsertItem( 19, Color( COL_LIGHTGREEN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightGreen" ) ) );
804 aValueSet.InsertItem( 20, Color( COL_LIGHTCYAN ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightCyan" ) ) );
805 aValueSet.InsertItem( 21, Color( COL_LIGHTRED ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightRed" ) ) );
806 aValueSet.InsertItem( 22, Color( COL_LIGHTMAGENTA ), XubString( RTL_CONSTASCII_USTRINGPARAM( "LightMagenta" ) ) );
807 aValueSet.InsertItem( 23, Color( COL_YELLOW ), XubString( RTL_CONSTASCII_USTRINGPARAM( "Yellow" ) ) );
808 aValueSet.InsertItem( 24, Color( COL_WHITE ), XubString( RTL_CONSTASCII_USTRINGPARAM( "White" ) ) );
809 aValueSet.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "None" ) ) );
810 aValueSet.SetColCount( 4 );
811 aValueSet.SetLineCount( 4 );
812 aValueSet.SetSelectHdl( LINK( this, MyWin, SelectHdl ) );
813 aValueSet.Show();
814 }
815
816 {
817 aCalendarField.EnableEmptyFieldValue( sal_True );
818 aCalendarField.SetCalendarStyle( aCalendarField.GetCalendarStyle() | WB_RANGESELECT );
819 aCalendarField.SetSelectHdl( LINK( this, MyWin, CalSelectHdl ) );
820 // aCalendarField.SetDate( Date() );
821 aCalendarField.SetEmptyDate();
822 aCalendarField.EnableToday();
823 aCalendarField.EnableNone();
824 aCalendarField.SetPosSizePixel( Point( 430, nY ), Size( 130, 20 ) );
825 aCalendarField.Show();
826 }
827
828 {
829 aCalendarField2.SetDate( Date() );
830 aCalendarField2.SetPosSizePixel( Point( 570, nY ), Size( 130, 20 ) );
831 aCalendarField2.Show();
832 }
833
834 nY += 200;
835 {
836 aTabBar.SetPosSizePixel( Point( 10, nY ),
837 Size( 300, aTabBar.GetSizePixel().Height() ) );
838 aTabBar.InsertPage( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 1" ) ) );
839 aTabBar.InsertPage( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 2" ) ) );
840 aTabBar.InsertPage( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 3" ) ) );
841 aTabBar.InsertPage( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 4" ) ) );
842 aTabBar.InsertPage( 5, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 5" ) ) );
843 aTabBar.InsertPage( 6, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 6" ) ) );
844 aTabBar.InsertPage( 7, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 7" ) ) );
845 aTabBar.InsertPage( 8, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 8" ) ) );
846 aTabBar.InsertPage( 9, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 9" ) ) );
847 aTabBar.InsertPage( 10, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 10" ) ) );
848 aTabBar.InsertPage( 11, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 11" ) ) );
849 aTabBar.InsertPage( 12, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 12" ) ) );
850 aTabBar.InsertPage( 13, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 13" ) ) );
851 aTabBar.InsertPage( 14, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 14" ) ) );
852 aTabBar.InsertPage( 15, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 15" ) ) );
853 aTabBar.InsertPage( 16, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 16" ) ) );
854 aTabBar.InsertPage( 17, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 17" ) ) );
855 aTabBar.InsertPage( 18, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 18" ) ) );
856 aTabBar.InsertPage( 19, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 19" ) ) );
857 aTabBar.InsertPage( 20, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 20" ) ) );
858 aTabBar.InsertPage( 21, XubString( RTL_CONSTASCII_USTRINGPARAM( "This is a long Page Text" ) ) );
859 aTabBar.InsertPage( 22, XubString( RTL_CONSTASCII_USTRINGPARAM( "Short Text" ) ) );
860 aTabBar.InsertPage( 23, XubString( RTL_CONSTASCII_USTRINGPARAM( "And now a very very long Page Text" ) ) );
861 aTabBar.InsertPage( 24, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 24" ) ) );
862 aTabBar.InsertPage( 25, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 25" ) ) );
863 aTabBar.InsertPage( 26, XubString( RTL_CONSTASCII_USTRINGPARAM( "And now a very long Page Text" ) ) );
864 aTabBar.InsertPage( 27, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 27" ) ) );
865 aTabBar.InsertPage( 28, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 28" ) ) );
866 aTabBar.InsertPage( 29, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 29" ) ) );
867 aTabBar.InsertPage( 30, XubString( RTL_CONSTASCII_USTRINGPARAM( "Page 30" ) ) );
868 aTabBar.EnableEditMode();
869 aTabBar.Show();
870 }
871
872 nY += 35;
873 {
874 aPrgsBar.SetPosPixel( Point( 10, nY ) );
875 aPrgsBar.Show();
876 }
877
878 nY += 40;
879 {
880 aFontBtn.SetPosSizePixel( Point( 10, nY ), Size( 100, 30 ) );
881 aFontBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Font..." ) ) );
882 aFontBtn.SetClickHdl( LINK( this, MyWin, Test ) );
883 aFontBtn.Show();
884
885 aCalendarBtn.SetPosSizePixel( Point( 120, nY ), Size( 100, 30 ) );
886 aCalendarBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Calendar" ) ) );
887 aCalendarBtn.SetClickHdl( LINK( this, MyWin, Test ) );
888 aCalendarBtn.Show();
889
890 aPrnSetupBtn.SetPosSizePixel( Point( 230, nY ), Size( 100, 30 ) );
891 aPrnSetupBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "PrnSetup..." ) ) );
892 aPrnSetupBtn.SetClickHdl( LINK( this, MyWin, Test ) );
893 aPrnSetupBtn.Show();
894
895 aPrnDlgBtn.SetPosSizePixel( Point( 340, nY ), Size( 100, 30 ) );
896 aPrnDlgBtn.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "Print...." ) ) );
897 aPrnDlgBtn.SetClickHdl( LINK( this, MyWin, Test ) );
898 aPrnDlgBtn.Show();
899 }
900 }
901
902 // -----------------------------------------------------------------------
903
~MyWin()904 MyWin::~MyWin()
905 {
906 if ( pCalendar )
907 delete pCalendar;
908
909 if ( pMenu )
910 {
911 delete pMenu;
912 delete pNameMenu;
913 delete pStyleMenu;
914 delete pSizeMenu;
915 }
916 }
917
918 // -----------------------------------------------------------------------
919
IMPL_LINK(MyWin,Test,PushButton *,pBtn)920 IMPL_LINK( MyWin, Test, PushButton*, pBtn )
921 {
922 if ( pBtn == &aFontBtn )
923 {
924 MyFontDialog* pDlg = new MyFontDialog( this );
925 pDlg->Execute();
926 delete pDlg;
927 }
928 else if ( pBtn == &aCalendarBtn )
929 {
930 if ( !pCalendar )
931 pCalendar = new MyCalendar( this );
932 pCalendar->ToTop();
933 pCalendar->Show();
934 }
935 else if ( pBtn == &aPrnSetupBtn )
936 {
937 PrinterSetupDialog* pDlg = new PrinterSetupDialog( this );
938 pDlg->SetPrinter( &aPrn );
939 pDlg->Execute();
940 delete pDlg;
941 }
942 else if ( pBtn == &aPrnDlgBtn )
943 {
944 PrintDialog* pDlg = new PrintDialog( this, false );
945 pDlg->SetPrinter( &aPrn );
946 pDlg->EnableRange( PRINTDIALOG_ALL );
947 pDlg->EnableRange( PRINTDIALOG_RANGE );
948 pDlg->Execute();
949 delete pDlg;
950 }
951
952 return 0;
953 }
954
955 // -----------------------------------------------------------------------
956
IMPL_LINK(MyWin,SelectHdl,Window *,pCtrl)957 IMPL_LINK( MyWin, SelectHdl, Window*, pCtrl )
958 {
959 if ( pCtrl == &aColorList )
960 {
961 Color aColor = aColorList.GetSelectEntryColor();
962 aValueSet.SetColor( aColor );
963 aLineList.SetColor( aColor );
964 }
965 else if ( pCtrl == &aValueSet )
966 {
967 sal_uInt16 nId = aValueSet.GetSelectItemId();
968 if ( nId > 8 )
969 {
970 Color aColor = aValueSet.GetItemColor( nId );
971 aValueSet.SetFillColor( aColor );
972 }
973 }
974 else if ( pCtrl == &aHeadBar )
975 {
976 sal_uInt16 nCurItemId = aHeadBar.GetCurItemId();
977 for ( sal_uInt16 i = 0; i < aHeadBar.GetItemCount(); i++ )
978 {
979 sal_uInt16 nItemId = aHeadBar.GetItemId( i );
980 HeaderBarItemBits nBits = aHeadBar.GetItemBits( nItemId );
981 if ( nItemId == nCurItemId )
982 {
983 HeaderBarItemBits nOldBits = nBits;
984 nBits &= ~(HIB_DOWNARROW | HIB_UPARROW);
985 if ( nOldBits & HIB_DOWNARROW )
986 nBits |= HIB_UPARROW;
987 else
988 nBits |= HIB_DOWNARROW;
989 }
990 else
991 nBits &= ~(HIB_DOWNARROW | HIB_UPARROW);
992 aHeadBar.SetItemBits( nItemId, nBits );
993 }
994 }
995
996 return 0;
997 }
998
999 // -----------------------------------------------------------------------
1000
IMPL_LINK(MyWin,CalSelectHdl,CalendarField *,pCtrl)1001 IMPL_LINK( MyWin, CalSelectHdl, CalendarField*, pCtrl )
1002 {
1003 if ( pCtrl == &aCalendarField )
1004 {
1005 Calendar* l_pCalendar = pCtrl->GetCalendar();
1006 aCalendarField2.SetDate( l_pCalendar->GetSelectDate( l_pCalendar->GetSelectDateCount()-1 ) );
1007 }
1008
1009 return 0;
1010 }
1011
1012 // -----------------------------------------------------------------------
1013
ContextMenu(const Point & rPos)1014 void MyWin::ContextMenu( const Point& rPos )
1015 {
1016 FontList aList( this );
1017
1018 if ( !pMenu )
1019 {
1020 pMenu = new PopupMenu;
1021 pNameMenu = new FontNameMenu;
1022 pStyleMenu = new FontStyleMenu;
1023 pSizeMenu = new FontSizeMenu;
1024
1025 pMenu->InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Font" ) ) );
1026 pMenu->InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Attribute" ) ) );
1027 pMenu->InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) );
1028 pMenu->SetPopupMenu( 1, pNameMenu );
1029 pMenu->SetPopupMenu( 2, pStyleMenu );
1030 pMenu->SetPopupMenu( 3, pSizeMenu );
1031
1032 pNameMenu->Fill( &aList );
1033 pNameMenu->SetCurName( aList.GetFontName( 0 ).GetName() );
1034
1035 pStyleMenu->InsertSeparator();
1036 pStyleMenu->InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Underline" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
1037 pStyleMenu->InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Stri~keout" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
1038 pStyleMenu->InsertItem( 3, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Shadow" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
1039 pStyleMenu->InsertItem( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "~Outline" ) ), MIB_CHECKABLE | MIB_AUTOCHECK );
1040 }
1041
1042 pStyleMenu->Fill( pNameMenu->GetCurName(), &aList );
1043 pSizeMenu->Fill( aList.Get( pNameMenu->GetCurName(),
1044 pStyleMenu->GetCurStyle() ), &aList );
1045
1046 pMenu->Execute( this, rPos );
1047 }
1048
1049 // -----------------------------------------------------------------------
1050
Command(const CommandEvent & rCEvt)1051 void MyWin::Command( const CommandEvent& rCEvt )
1052 {
1053 if ( rCEvt.GetCommand() == COMMAND_CONTEXTMENU )
1054 ContextMenu( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) );
1055 }
1056
1057 // -----------------------------------------------------------------------
1058
MouseButtonDown(const MouseEvent & rMEvt)1059 void MyWin::MouseButtonDown( const MouseEvent& rMEvt )
1060 {
1061 aValueSet.StartSelection();
1062 WorkWindow::MouseButtonDown( rMEvt );
1063 }
1064
1065 // -----------------------------------------------------------------------
1066
KeyInput(const KeyEvent & rKEvt)1067 void MyWin::KeyInput( const KeyEvent& rKEvt )
1068 {
1069 if ( rKEvt.GetKeyCode().GetCode() == KEY_P )
1070 {
1071 for ( sal_uInt16 i = 0; i <= 130; i += 2 )
1072 {
1073 for ( sal_uInt16 j = 0; j < 6000; j++ )
1074 {
1075 aPrgsBar.SetValue( i );
1076 Application::Reschedule();
1077 }
1078 }
1079 }
1080 else if ( rKEvt.GetCharCode() == '+' )
1081 aHeadBar.SetOffset( aHeadBar.GetOffset()+1 );
1082 else if ( rKEvt.GetCharCode() == '-' )
1083 aHeadBar.SetOffset( aHeadBar.GetOffset()-1 );
1084
1085 WorkWindow::KeyInput( rKEvt );
1086 }
1087
1088 // -----------------------------------------------------------------------
1089
Paint(const Rectangle & rRect)1090 void MyWin::Paint( const Rectangle& rRect )
1091 {
1092 WorkWindow::Paint( rRect );
1093 }
1094
1095 // -----------------------------------------------------------------------
1096
Resize()1097 void MyWin::Resize()
1098 {
1099 Size aWinSize = GetOutputSizePixel();
1100
1101 aBox.SetSizePixel( Size( aWinSize.Width(), aBoxSize.Height() ) );
1102
1103 Size aSize = aBar.GetSizePixel();
1104 aBar.SetPosSizePixel( Point( 0, aWinSize.Height()-aSize.Height() ),
1105 Size( aWinSize.Width(), aSize.Height() ) );
1106
1107 Size aBarSize = aSize;
1108 Point aPos = aHeadBar.GetPosPixel();
1109 aSize = aHeadBar.GetSizePixel();
1110 aHeadBar.SetSizePixel( Size( aWinSize.Width(), aSize.Height() ) );
1111 aHeadBar.SetDragSize( aWinSize.Height() - aSize.Height() - aPos.Y() - aBarSize.Height() );
1112
1113 aPos = aPrgsBar.GetPosPixel();
1114 aSize = aPrgsBar.GetSizePixel();
1115 if ( aPos.X() < aWinSize.Width()-10 )
1116 aPrgsBar.SetSizePixel( Size( aWinSize.Width()-aPos.X()-10, aSize.Height() ) );
1117 }
1118
1119 // -----------------------------------------------------------------------
1120
1121 MyApp aMyApp;
1122