home *** CD-ROM | disk | FTP | other *** search
- /*========================================================*/
- /* WINMENU.CPP */
- /* (C) 1993 Michael Maier & DMV-Verlag */
- /* Demonstration, wie ein Menü in einem Fenster */
- /* eingesetzt werden kann */
- /* Compiler: Turbo C++ 3.0, Borland C++ 3.1 */
- /*========================================================*/
-
- #include <stdlib.h>
- #include <stdio.h>
-
- #define Uses_TEventQueue
- #define Uses_TEvent
- #define Uses_TProgram
- #define Uses_TApplication
- #define Uses_TKeys
- #define Uses_TRect
- #define Uses_TMenuBar
- #define Uses_TSubMenu
- #define Uses_TMenuItem
- #define Uses_TStatusLine
- #define Uses_TStatusItem
- #define Uses_TStatusDef
- #define Uses_TDeskTop
- #define Uses_TView
- #define Uses_TWindow
- #include <tv.h>
-
- const int cmNoCommand = 200;
- const int cmNewWin = 201;
-
- class WinMenu : public TWindow
- {
- protected:
- TMenuBar *WinMenuBar ;
-
- public:
- WinMenu(const TRect& r, const char *aTitle);
- };
-
-
- WinMenu::WinMenu(const TRect& r, const char *aTitle)
- : TWindow( r, aTitle, 0), TWindowInit(&WinMenu::initFrame)
- {
-
- TSubMenu& SubMenu1 = *new TSubMenu("~F~enster", kbAltD) +
- *new TMenuItem("~Z~oomen", cmNewWin, kbAltZ, hcNoContext,
- "F5") +
- *new TMenuItem("~S~chließen", cmClose, kbAltS,
- hcNoContext, "");
-
- TSubMenu& SubMenu2 = *new TSubMenu("~E~dit", kbAltD) +
- *new TMenuItem("~C~ut", cmNoCommand, kbAltC, hcNoContext,
- "") +
- *new TMenuItem("C~o~py", cmNoCommand, kbAltO,
- hcNoContext, "") +
- *new TMenuItem("~P~aste", cmNoCommand, kbAltP,
- hcNoContext, "");
-
- TRect newPos = getExtent ();
- ++newPos.a.y;
- ++newPos.a.x;
- --newPos.b.x;
- newPos.b.y = newPos.a.y + 1;
- WinMenuBar = new TMenuBar(newPos, SubMenu1 + SubMenu2);
- insert(WinMenuBar);
- }
-
- class DemoWinMenu: public TApplication
- {
- public:
- DemoWinMenu();
- static TMenuBar *initMenuBar(TRect r);
- virtual void handleEvent(TEvent & event);
- };
-
- void DemoWinMenu::handleEvent(TEvent& event)
- {
-
- WinMenu *win;
-
- TApplication::handleEvent(event);
- if (event.what == evCommand)
- {
- switch (event.message.command)
- {
- case cmNewWin:
- if ((win = new WinMenu(TRect(10, 10, 50, 20),
- "Fenster")) != NULL)
- deskTop->insert(win);
- break;
- default:
- return;
- }
- clearEvent(event);
- }
- }
-
- TMenuBar *DemoWinMenu::initMenuBar(TRect r)
- {
- r.b.y = r.a.y + 1;
- return new TMenuBar(r, *new TSubMenu("~D~atei", kbAltD) +
- *new TMenuItem("~F~enster", cmNewWin, kbF3, hcNoContext,
- "F3") + newLine() +
- *new TMenuItem("~E~nde", cmQuit, kbNoKey, hcNoContext));
- }
-
-
- DemoWinMenu::DemoWinMenu():
- TProgInit(
- &DemoWinMenu::initStatusLine,
- &DemoWinMenu::initMenuBar,
- &DemoWinMenu::initDeskTop
- )
- {
- }
-
-
- int main ()
- {
- DemoWinMenu WinMenuAppl;
- WinMenuAppl.run();
- return 0;
- }
-
- /*========================================================*/
- /* Ende von WINMENU.CPP */
-