diff -urN ooo_SRC680_m179_src.orig/vcl/workben/svdem.cxx ooo_SRC680_m179_src/vcl/workben/svdem.cxx --- ooo_SRC680_m179_src.orig/vcl/workben/svdem.cxx 2006-08-01 20:21:39.000000000 +0200 +++ ooo_SRC680_m179_src/vcl/workben/svdem.cxx 2006-08-01 22:04:34.000000000 +0200 @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -87,10 +88,87 @@ void KeyUp( const KeyEvent& rKEvt ); void Paint( const Rectangle& rRect ); void Resize(); + MenuBar aMenuBar; + PopupMenu aFileMenu; + PopupMenu aEditMenu; + + DECL_LINK(MyFileSelectHandler, Menu *); + DECL_LINK(MyEditSelectHandler, Menu *); + + DECL_LINK(MyFileHighlightHandler, Menu *); + DECL_LINK(MyEditHighlightHandler, Menu *); }; // ----------------------------------------------------------------------- +IMPL_LINK (MyWin, MyFileSelectHandler, Menu *, pMenu) +{ + fprintf (stderr, "MyFileSelectHandler called!\n"); + + USHORT nItemId = pMenu->GetCurItemId(); + fprintf(stderr, "PJ: nItemId = %d\n", nItemId); + + if ( nItemId == 1) + fprintf(stderr, "PJ: Open selected\n"); + else if ( nItemId == 4) + { + fprintf(stderr, "PJ: Exit selected -> Quit!\n"); + exit(0); + } +} + +// ----------------------------------------------------------------------- + +IMPL_LINK (MyWin, MyEditSelectHandler, Menu *, pMenu) +{ + fprintf (stderr, "MyEditSelectHandler called!\n"); + + USHORT nItemId = pMenu->GetCurItemId(); + fprintf(stderr, "PJ: nItemId = %d\n", nItemId); + + if ( nItemId == 1) + fprintf(stderr, "PJ: Search selected\n"); + else if ( nItemId == 2) + { + fprintf(stderr, "PJ: 'Remove itself from menu' selected\n"); + pMenu->RemoveItem (1); + } +} + +// ----------------------------------------------------------------------- + +IMPL_LINK (MyWin, MyFileHighlightHandler, Menu *, pMenu) +{ + fprintf (stderr, "MyFileHighlightHandler called!\n"); + + USHORT nItemId = pMenu->GetCurItemId(); + fprintf(stderr, "PJ: nItemId = %d\n", nItemId); + + if ( nItemId == 1) + fprintf(stderr, "PJ: Open highlighted\n"); + else if ( nItemId == 2) + fprintf(stderr, "PJ: Close highlighted\n"); + else if ( nItemId == 4) + fprintf(stderr, "PJ: Exit highlighted, take care when selecting it!\n"); +} + +// ----------------------------------------------------------------------- + +IMPL_LINK (MyWin, MyEditHighlightHandler, Menu *, pMenu) +{ + fprintf (stderr, "MyEditHighlightHandler called!\n"); + + USHORT nItemId = pMenu->GetCurItemId(); + fprintf(stderr, "PJ: nItemId = %d\n", nItemId); + + if ( nItemId == 1) + fprintf(stderr, "PJ: Search highlighted\n"); + else if ( nItemId == 2) + fprintf(stderr, "PJ: 'Remove itself from menu' highlighted - will remove itself from the menu!\n"); +} + +// ----------------------------------------------------------------------- + void Main() { /* @@ -104,6 +182,78 @@ aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "VCL - Workbench" ) ) ); aMainWin.Show(); +#define PJ_DEBUG(STRING) fprintf(stderr, "PJ: --- " STRING " ---\n"); + + PJ_DEBUG("1"); + + aMainWin.aMenuBar.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "File" ) ) ); + + PJ_DEBUG("2"); + + aMainWin.aMenuBar.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Edit" ) ) ); + + PJ_DEBUG("3"); + + aMainWin.aMenuBar.SetPopupMenu( 1, &aMainWin.aFileMenu ); + + PJ_DEBUG("4"); + + aMainWin.aMenuBar.SetPopupMenu( 2, &aMainWin.aEditMenu ); + + PJ_DEBUG("5"); + + aMainWin.aFileMenu.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Open" ) )); + + PJ_DEBUG("6"); + + aMainWin.aFileMenu.CheckItem( 1, TRUE); + + PJ_DEBUG("7"); + + aMainWin.aFileMenu.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Close" ) )); + + PJ_DEBUG("8"); + + aMainWin.aFileMenu.EnableItem( 2, FALSE); + + PJ_DEBUG("9"); + + aMainWin.aFileMenu.InsertSeparator( 3 ); + + PJ_DEBUG("10"); + + aMainWin.aFileMenu.InsertItem( 4, XubString( RTL_CONSTASCII_USTRINGPARAM( "Exit" ) )); + + PJ_DEBUG("11"); + + aMainWin.aFileMenu.SetSelectHdl( LINK( &aMainWin, MyWin, MyFileSelectHandler)); + + PJ_DEBUG("12"); + + aMainWin.aFileMenu.SetHighlightHdl( LINK( &aMainWin, MyWin, MyFileHighlightHandler)); + + PJ_DEBUG("13"); + + aMainWin.aEditMenu.InsertItem( 1, XubString( RTL_CONSTASCII_USTRINGPARAM( "Search" ) )); + + PJ_DEBUG("14"); + + aMainWin.aEditMenu.InsertItem( 2, XubString( RTL_CONSTASCII_USTRINGPARAM( "Remove itself from menu" ) )); + + PJ_DEBUG("15"); + + aMainWin.aEditMenu.SetSelectHdl( LINK( &aMainWin, MyWin, MyEditSelectHandler)); + + PJ_DEBUG("16"); + + aMainWin.aEditMenu.SetHighlightHdl( LINK( &aMainWin, MyWin, MyEditHighlightHandler)); + + PJ_DEBUG("17"); + + aMainWin.SetMenuBar( &aMainWin.aMenuBar ); + + PJ_DEBUG("18"); + /* InfoBox ib(NULL, String((sal_Char*)"Test", sizeof("Test"))); ib.Execute();